为什么我们不能在C#中定义结构中的数组

时间:2014-01-26 15:58:05

标签: c#-4.0 managed

大家好帮助我理解为什么我们不能在c#

中的结构中定义数组

我尝试了另一个问题,但大多数建议使用类而不是结构。 这对于实现目的是可行的,但我想理解为什么我们不能在结构中定义数组。

2 个答案:

答案 0 :(得分:2)

您可以但必须在所有构造函数中初始化数组,因为结构要求您为构造函数中的所有成员赋值。

 public struct YourStruct
 {
     public char[] arr; 

   public YourStruct(int size)
   {
      arr = new char[size];
   }
 }

就像其他人提到的那样,如果你正在创建一个ARJAY的OBJECTS(不是值类型),那么结构不适合开头。 看这里:How to initialize char array in struct

答案 1 :(得分:2)

你可以在一个结构中有一个数组,但在大多数情况下这是毫无意义的。

数组是一个对象,因此该结构只包含数组的引用。如果创建数组并分配给引用,则会在堆上创建数组。使用结构的通常原因是避免在堆上创建对象。