C#法中的花括号

C#法中的花括号,c#,object-initializers,C#,Object Initializers,我目前正在用C#编程,并在其中一个教程中找到了这段代码 这个方法中的花括号到底是什么意思?它是否像一个键值对{id:2} weapon = new Weapon(new WeaponData() { Id = 12 }); 这就是所谓的obect初始值设定项。它允许您在构造对象之后立即设置属性值。它相当于以下代码: var weaponData = new WeaponData(); weaponData.Id = 12; weapon = new Weapon(weaponData); 这

我目前正在用C#编程,并在其中一个教程中找到了这段代码

这个方法中的花括号到底是什么意思?它是否像一个键值对
{id:2}

weapon = new Weapon(new WeaponData() { Id = 12 });

这就是所谓的obect初始值设定项。它允许您在构造对象之后立即设置属性值。它相当于以下代码:

var weaponData = new WeaponData();
weaponData.Id = 12;
weapon = new Weapon(weaponData);

这就是所谓的obect初始值设定项。它允许您在构造对象之后立即设置属性值。它相当于以下代码:

var weaponData = new WeaponData();
weaponData.Id = 12;
weapon = new Weapon(weaponData);

在这种情况下,
武器
类有一个no-args构造函数,该构造函数在同一行中被调用,用于初始化值为12的
id
属性。这只是初始化对象的另一种方式。在本例中,
武器
类有一个无参数构造函数,它在同一行中被调用,初始化值为12的
id
属性。这只是初始化对象的另一种方式

另外,你不需要做
newweapondata(){}
,只要看看微软的文档:另外,你不需要做
newweapondata(){}
,只要看看微软的文档:我会投票,但是我标记的副本有更多的细节来回答这个问题,我会投票,但是我标记的副本有更多的细节来回答这个问题