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
数组变量如何在不使用C#中的新关键字初始化变量的情况下填充值?_C#_Arrays_Unity3d - Fatal编程技术网

数组变量如何在不使用C#中的新关键字初始化变量的情况下填充值?

数组变量如何在不使用C#中的新关键字初始化变量的情况下填充值?,c#,arrays,unity3d,C#,Arrays,Unity3d,我有两个案例,无法理解代码是如何工作的,请帮助。谢谢 案例1: Transform[] zombiesTransform; private void Start() { zombiesTransform = new Transform[5]; // now i have initialized so i can add some transform in it // which is fine } Zom

我有两个案例,无法理解代码是如何工作的,请帮助。谢谢

案例1:

Transform[] zombiesTransform;
private void Start() 
{
  zombiesTransform = new Transform[5]; // now i have initialized so i can add some transform in it 
                                       //  which is fine

}
Zombie[] zombies;
private void Start() 
{
  zombies = FindObjectsOfType<Zombie>(); // how is this zombie array is filled with value without 
                                         // initializing zombies variable like "zombies = new Zombies[5]"
}
案例2:

Transform[] zombiesTransform;
private void Start() 
{
  zombiesTransform = new Transform[5]; // now i have initialized so i can add some transform in it 
                                       //  which is fine

}
Zombie[] zombies;
private void Start() 
{
  zombies = FindObjectsOfType<Zombie>(); // how is this zombie array is filled with value without 
                                         // initializing zombies variable like "zombies = new Zombies[5]"
}
Zombie[]僵尸;
私有void Start()
{
zombies=FindObjectsOfType();//这个zombie数组是如何用值填充的而不是
//初始化zombies变量,如“zombies=newzombies[5]”
}

我将尝试使用一个示例进行解释(就像我正在编写
FindObjectsOfType
的代码一样)

public T[]FindObjectsOfType(),其中T:new(){
T[]集合=新的T[5];
T[0]=新的T();
//创建更多的T项
返回T;
}

那我在这里干什么?我是说泛型类型
T
是新的(我可以创建它的一个对象),我声明并实例化一个新的
T
对象数组,然后将它们返回给需要它们的对象。

因为FindObjectsOfType在内部创建数组,然后将对该数组的引用返回给它的调用者。调用者(您的代码)将引用分配给您的数组变量。@Steve现在我明白了。感谢基本上是因为数组是一个引用,所以
FindObjectsOfType
new T[5]
都返回对数组的引用。