初始化一个struct数组

时间:2011-08-30 13:38:14

标签: c# arrays struct initialization

  

可能重复:
  How to initialize array of struct?
  Initializing an Array of Structs in C#

C#,Visual Studio 2010

我想声明一个struct数组并在同一时间初始化它但是无法正确 我如何写默认初始化由结构组成的数组?

以下内容不会通过编译器,但会显示我想要存档的想法

    private struct PrgStrTrans_t
    {
        public int id;
        public string name;
        public string fname;
    }

    private PrgStrTrans_t[] PrgStrTrans = { {1, "hello", "there"}, {2, "Fun", thisone"}}

有可能吗?

2 个答案:

答案 0 :(得分:1)

在结构中添加构造函数,并将new PrgStrTrans(...),放在数组的每一行上。

像这样:

private struct PrgStrTrans_t
{
    public int id;
    public string name;
    public string fname;

    public PrgStrTrans_t(int i, string n, string f)
    {
        id = i;
        name = n;
        fname = f;
    }
}

private PrgStrTrans_t[] PrgStrTrans = {
                                          new PrgStrTrans_t(4, "test", "something"),
                                          new PrgStrTrans_t(2, "abcd", "1234")
                                      }

答案 1 :(得分:0)

private PrgStrTrans_t[] PrgStrTrans = { new PrgStrTrans_t() { id = 1, name = "hello", fname = "there"},new PrgStrTrans_t() {id = 2, name = "Fun", fname = "thisone"}};

如果你制作一个构造函数会更好,这会避免输入属性名称。