У меня есть три класса: сущность, ученик и учитель. Все объекты сохраняются в массиве Entity. Мне нужно проверить класс Entity[i]
, но когда я пытаюсь virify, я получаю предупреждение. Программа остановлена и ничего не происходит. Что делать?У меня есть массив с двумя типами объектов. Мне нужно проверить класс объекта, но
class Entity {
string param0;
}
class Student : Entity {
string param1;
//consturctor...
}
class Teacher : Entity {
class string param2;
//consturctor...
}
Entity[] entities = new Entity[5];
entities[0] = new Student("some string1");
entities[1] = new Teacher("some string2");
...
...
var es = entities[i] as Student;
if (es.param1 != null) //here throw nullReferenceException
Debug.Log(es.param1);
else
Debug.log(es.param2);
Что я могу сделать? Как я могу проверить класс объекта правильно?
Но 'i' никогда не определяется ... Пожалуйста, укажите * минимальный рабочий пример * (что-то, что скомпилируется). –
«Оператор as как операция литья. Однако, если преобразование невозможно, так как возвращает значение null вместо создания исключения» - https://msdn.microsoft.com/en-us/library/cscsdfbt.aspx – vesan
'es.param1' должно быть' es' в выражении if – SimpleVar