Как переменная массива заполняется значениями без инициализации переменной новым ключевым словом в C#? - PullRequest
2 голосов
/ 23 февраля 2020

У меня есть два случая, и я не могу понять, как работают коды, пожалуйста, помогите. Спасибо

Дело 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

}

Дело 2:

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]"
}

1 Ответ

1 голос
/ 23 февраля 2020

Я попытаюсь объяснить на примере (как если бы я писал код FindObjectsOfType)

public T[] FindObjectsOfType<T>() where T : new() {
    T[] collection = new T[5];
    T[0] = new T();
    // create more T items
    return T;
}

Так что я здесь делаю? Я говорю, что универсальный c тип T является новым (я могу создать его объект), я объявляю и создаю экземпляр нового массива T объектов, а затем возвращаю их тому, кто в них нуждается.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...