tub*_*der 8 .net c# initializer
找不到这个问题的答案.它必须是显而易见的,但仍然是.
我尝试在这个简化的例子中使用初始化器:
MyNode newNode = new MyNode
{
NodeName = "newNode",
Children.Add(/*smth*/) // mistake is here
};
Run Code Online (Sandbox Code Playgroud)
其中Children是此类的属性,它返回一个列表.在这里,我遇到了一个错误,就像'无效的初始化成员声明符'.
这里有什么问题,你如何初始化这些属性?非常感谢提前!
Jon*_*eet 20
您不能在对象初始值设定项中调用类似的方法 - 您只能设置属性或字段,而不是调用方法.但是在这种情况下,您可能仍然可以使用对象和集合初始化器语法:
MyNode newNode = new MyNode
{
NodeName = "newNode",
Children = { /* values */ }
};
Run Code Online (Sandbox Code Playgroud)
请注意,这不会尝试为其分配新值Children,它将调用Children.Add(...),如下所示:
var tmp = new MyNode();
tmp.NodeName = "newNode":
tmp.Children.Add(value1);
tmp.Children.Add(value2);
...
MyNode newNode = tmp;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11106 次 |
| 最近记录: |