C# 3.0,对象初始化器和获取属性返回数组,如何初始化?

标签 c# c#-3.0 initialization

有以下类(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/

相关文章:

C# 带有水平文本的垂直选项卡控件

c# - 将 EF CodeFirst 基类转换为继承类(使用 table-per-type)

c# - 如何将 XML 读入数据集

c# - json.net 可枚举

c++ - 插件的初始化程序问题。一个测试

c# - 用于 webm 视频转换的 API

c# - 我如何查看 C# 中的远程进程?

c# - 使用忽略重载的 lambda 语法选择方法表达式

java - 为什么实例初始化 block 在构造函数之前执行

c - c中可变大小对象的初始化问题