Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 为什么数组中的元素仍然为空?_C#_Arrays_Unity3d - Fatal编程技术网

C# 为什么数组中的元素仍然为空?

C# 为什么数组中的元素仍然为空?,c#,arrays,unity3d,C#,Arrays,Unity3d,使用Monodevelop,这一切都是统一的 我这样声明我的数组 Tile[] Tiles = new Tile[7]; for (int i = 0; i < Tiles.Length; i++) { Tiles[i] = new Tile(); } 然后我尝试循环并设置元素,虽然这本身就是试图解决这个问题 Tile[] Tiles = new Tile[7]; for (int i = 0; i < Tiles.Length; i++) { Tiles[

使用Monodevelop,这一切都是统一的

我这样声明我的数组

Tile[] Tiles = new Tile[7];
for (int i = 0; i < Tiles.Length; i++) 
{
    Tiles[i] = new Tile();
}
然后我尝试循环并设置元素,虽然这本身就是试图解决这个问题

Tile[] Tiles = new Tile[7];
for (int i = 0; i < Tiles.Length; i++) 
{
    Tiles[i] = new Tile();
}

不,类数组的默认值为null。 因此,您需要循环并在之后填充数组

我喜欢这里发布的解决方案,它可以让您的阵列中的所有人都变得干净。

由于某些原因,Tile类中需要构造函数,我不确定确切原因,但使用Unity和Monodevelop似乎不支持默认构造函数。

Siryakalot正如您所说,Tile类中需要构造函数,因为您无法实例化Tyle类型的对象:

Tiles[i] = new Tile();
在Tile类中没有constructore Tile

using UnityEngine;
using System.Collections;

public class Tile
{
    public Tile[] nonAdjacentTiles = new Tile[6];
    public Transform _mesh;
}

祝你好运:

你能发布一个完整的例子来演示我们可以运行的问题吗?到目前为止,您的代码表明您遇到的问题是不可能的,因为数组中的项已成功初始化。请显示完整的示例。你所展示的不应该导致你所描述的行为。这就是全部example@SirYakalot一个完整的例子是一个控制台应用程序,其他人可以运行它来重现您的问题。如果我能填补空白,让你的代码运行,它会工作得很好。因此,很明显还有其他事情在发生,例如您正在查看不同的对象引用。@SirYakalot您确认在查看Tiles的状态之前调用了Start方法了吗?for it声明它是在调用任何Updatemethods之前调用的。欢迎使用Stack Overflow!虽然这在理论上可以回答这个问题,但在这里包括答案的基本部分,并提供链接供参考。@Vogel612不幸的是,这无法回答这个问题。。。充其量只是一个评论。@Adamhuldsworth嗯。。。我明白了。唉,答案可能值得一个NAA标志。。我只是投了反对票,并对答案的质量进行了自动评论,因为很明显,这一点对我来说是最需要的。我甚至没有检查正确性…为什么?它是特定于统一的吗?它是一种面向对象的规则。您使用的是C,C是一种面向对象的编程语言