找不到这个问题的答案。这一定是显而易见的,但仍然如此。
我尝试在这个简化的示例中使用初始化程序:
MyNode newNode = new MyNode
{
NodeName = "newNode",
Children.Add(/*smth*/) // mistake is here
};
其中 Children 是此类的属性,它返回一个列表。在这里我遇到了一个错误,类似于“无效的初始化程序成员声明符”。
这里出了什么问题,如何初始化这些属性?预先非常感谢!
您不能在对象初始值设定项中调用类似的方法 - 您只能设置属性或字段,而不能调用方法。然而在这种情况下你可能can仍然使用对象和集合初始化语法:
MyNode newNode = new MyNode
{
NodeName = "newNode",
Children = { /* values */ }
};
请注意,这不会尝试为Children
,它会调用Children.Add(...)
, 像这样:
var tmp = new MyNode();
tmp.NodeName = "newNode":
tmp.Children.Add(value1);
tmp.Children.Add(value2);
...
MyNode newNode = tmp;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)