大家好帮助我理解为什么我们不能在c#
中的结构中定义数组我尝试了另一个问题,但大多数建议使用类而不是结构。 这对于实现目的是可行的,但我想理解为什么我们不能在结构中定义数组。
答案 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)
你可以在一个结构中有一个数组,但在大多数情况下这是毫无意义的。
数组是一个对象,因此该结构只包含数组的引用。如果创建数组并分配给引用,则会在堆上创建数组。使用结构的通常原因是避免在堆上创建对象。