Используйте оператор is в C#
Оператор is позволяет определить, можно ли преобразовать объект в определенный тип. Например, предположим, что класс Student наследуется от Person и что student и person являются объектами очевидных классов , Затем, например, оператор student является Person возвращает true, потому что объект student может быть преобразован в Person object (потому что объект Student является видом объекта Person).
Эта программа использует следующий код для демонстрации инструкции is.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
private void Form1_Load(object sender, EventArgs e) { Person person = new Person(); Student student = new Student(); object obj = student; if (student is Student) lstResults.Items.Add("a_student is a Student"); else lstResults.Items.Add("a_student is not a Student"); if (student is Person) lstResults.Items.Add("a_student is a Person"); else lstResults.Items.Add("a_student is not a Person"); if (person is Person) lstResults.Items.Add("a_person is a Person"); else lstResults.Items.Add("a_person is not a Person"); if (person is Student) lstResults.Items.Add("a_person is a Student"); else lstResults.Items.Add("a_person is not a Student"); } |
В качестве альтернативы вы можете использовать ключевое слово as, чтобы попытаться преобразовать объект в другой тип. Например, следующий оператор пытается преобразовать объект Person в объект Student.
1 |
Student student = person as Student; |