有以下类(class):
public class SomeClass
{
private readonly int[] _someThings;
public SomeClass()
{
_someThings = new int[4];
}
public int[] SomeThings
{
get { return _someThings; }
}
}
我如何使用对象初始化器语法来初始化 SomeThings 属性,如以下(非工作)代码摘录所示?
var anObject = new SomeClass
{
SomeThings[0] = 4,
SomeThings[3] = 8
}
更新
可以这样做(即使没有set 属性):
anObject.SomeThings[0] = 4;
anObject.SomeThings[3] = 8;
但我正在尝试使用对象初始化语法。
最佳答案
据我所知,您只能使用这样的 Add 方法:
public class SomeClass
{
void Add(int index, int item)
{
// ...
}
}
var anObject = new SomeClass()
{
{0, 4}, // Calls Add(0, 4)
{4, 8} // Calls Add(4, 8)
}
关于C# 3.0,对象初始化器和获取属性返回数组,如何初始化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/858491/