数组变量如何在不使用C#中的新关键字初始化变量的情况下填充值?
我有两个案例,无法理解代码是如何工作的,请帮助。谢谢 案例1:数组变量如何在不使用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
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]
都返回对数组的引用。