C# 在 C# 中构造对象时方括号 ([]) 有什么用



这个问题可能非常基本,但我偶然发现了一行我从未见过的代码,并且想知道方括号的用途是什么。

public NodeItem (bool isWall, Vector2 pos, int x, int y)
{
this.isWall = isWall;
this.pos = pos;
this.x = x;
this.y = y;
}
1.  private NodeItem[,] map;
2.  map = new NodeItem[width, height];

有人可以向我解释 1 和 2 的工作原理以及这样做的优势是什么吗?

这不是一个对象。使用方括号时,您声明的是一个数组(与 C 和 C++ 不同,您不指定元素的数量。相反,您可以在初始化数组时使用new语句 (new <Type>[<itemsNumber>](执行此操作(。数组是一组对象,任何对象都应该被初始化- 任何数组元素(数组项的术语(都包含对象的默认值 - 0 表示数字,null表示引用类型和指针等。但是,当您声明数组时,您会在内存中保存一个位置来存储数组元素(数组是引用类型,因此它们存储在堆中(。在数组声明中使用逗号时,将声明多维数组。这是一个矩阵(用于 2D 数组;它可能是 3D、4D 等( 若要访问数组元素,请在方括号中指定所有索引,用逗号分隔。

有关 C# 中的数组的更多详细信息,请参阅 https://learn.microsoft.com/en-us/dotnet/csharp/programming-guide/arrays/,有关多维数组的详细信息 - 请参阅 https://learn.microsoft.com/en-us/dotnet/csharp/programming-guide/arrays/multidimensional-arrays。

在 c# 中,x[]x类型的数组。x[,]是一个二维数组(当然,x[,,]是一个三维数组,依此类推(。

所以 -private NodeItem[,] map;声明了一个字段,该字段是NodeItem的二维数组,名为map

后面的行 -map = new NodeItem[width, height];初始化数组 - 因此它现在包含对NodeItemwidth * height引用,所有引用类型都隐式初始化为default(NodeItem)-null,以及值类型的任何默认值。

如需进一步阅读,请参阅数组(C# 编程指南(和多维数组(C# 编程指南(

相关内容

  • 没有找到相关文章

最新更新