【问题标题】:How to declare an initialized multidimensional array of a class using C#如何使用 C# 声明一个类的初始化多维数组
【发布时间】:2019-08-19 20:42:40
【问题描述】:

这不起作用!是怎么做到的?

class myClass
{
    public int x;
    public string y;

    public myClass()
    {
    }

    public myClass(int _x, string _y)
    {
        x = _x;
        y = _y;
    }
}

myClass [,] myArray = new myClass[3,2] =
{
    {
        new myClass(1, "string11");
        new myClass(2, "string12");
    };
    {
        new myClass(1, "string21");
        new myClass(1, "string22");
    };
    {
        new myClass(1, "string31");
        new myClass(1, "string32");
    }
};

我正在尝试创建一个类的已初始化多维数组,但我无法让编译器接受它。我做错了什么?

我将 { 更改为 ( 并将逗号更改为分号 - 仍然不喜欢声明 myClass [,] myArray = new myClass[3,2] =

这似乎有效:

myClass [,] myArray = new myClass[3,2] 
{
    {
        new myClass(1, "string11"),
        new myClass(2, "string12")
    },
    {
        new myClass(1, "string21"),
        new myClass(1, "string22")
    },
    {
        new myClass(1, "string31"),
        new myClass(1, "string32")
    }
};

【问题讨论】:

  • "我做错了什么?" 我相信编译器会告诉你它认为你做错了什么。解决问题的第一步应该是阅读编译器给出的错误消息(包括阅读有关错误所在的代码行以及错误消息提及的代码行的信息)。忽略编译器为您提供的有关问题的信息通常不利于解决编程问题...
  • 我敢打赌这不是实际的错误消息“我不喜欢声明 myClass [,]...”

标签: c# arrays class multidimensional-array


【解决方案1】:

总之

  • 构造函数 { 而不是 ( 的语法错误
  • 您的数组声明中有 . 而不是 ,
  • 数组元素之间没有逗号

试试这个。

已修复

private static void Main()
{

   var myArray = new myClass[3, 2]
                 {
                    {
                       new myClass(1, "string11"),
                       new myClass(2, "string12"),
                    },
                    {
                       new myClass(1, "string21"),
                       new myClass(1, "string22"),
                    },
                    {
                       new myClass(1, "string31"),
                       new myClass(1, "string32"),
                    }
                 };
}

那么大概是时候看看下面的文档了:

【讨论】:

  • 我修复了语法错误,但编译器仍然不接受它。我编辑了示例以反映更改
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-11-20
  • 1970-01-01
  • 1970-01-01
  • 2014-05-11
  • 1970-01-01
  • 1970-01-01
  • 2011-04-03
相关资源
最近更新 更多