给定对象初始化器:
Foo foo = new Foo{ Name = "Jhon", Value = 2, IsMale = true };
它们可以以某种方式在其他地方使用吗?(外部对象构造)因此使用:
foo.Name = "Name";
foo.Value = 5;
...
foo.DoSth();
只需使用以下内容:
Name = "Name";
Value = 5;
...
DoSth();
鉴于这不在foo的类层次结构中。这是为了避免多次使用一个对象成员的地方。
例如,在VB / GML(GameMaker的脚本语言)中,可以使用:
with(foo)
{
Name = "Name";
Value = 5;
...
DoSth();
}
而不是foo.something
C#中有这样的东西吗?
答案 0 :(得分:1)
不,对象初始值设定项是唯一可以使用这种赋值语法的地方。如果您需要从代码中的许多不同位置一次分配多个字段而不重复,您可以定义一个封装所有分配的方法:
void SetNameAndGender(string f, string l, bool isMale) {
FirstName = f;
LastName = l;
IsMale = isMale;
}
不幸的是,它不允许您设置任意属性组,例如您显示的VB语法。