Конспект по теме 'Способы преобразования пользовательских типо | .NET backend study
Конспект по теме "Способы преобразования пользовательских типов" из категории "C#"
*В тестовой иерархии класс Dog является наследником класса Animal .
⦁ Прямое преобразование
Данное преобразование осуществляется с помощью указания конечного типа в скобках перед преобразуемой переменной:
var dog = new Dog(); try { var animal = (Animal)dog; } catch (InvalidCastException ex) {
}
Этот способ не очень удобен тем, что производится "жёсткое" преобразование. И, в случае, если преобразовать переменную не удалось - выбрасывается исключение.
⦁ Преобразование с помощью ключевого слова as
Данный способ позволяет нам сделать преобразование в одну строчку и при этом избежать проверок исключений.
var dog = new Dog(); var animal = dog as Animal; if(animal != null) { //какая-то логика в случае успешного преобразования }
В случае неудачного преобразования переменная animal будет null.
⦁ Преобразование с помощью ключевого слова is
Также можно осуществлять преобразование с помощью ключевого слова is без обработки потенциального исключения.
var dog = new Dog(); if(dog is Animal animal) { //какая-то логика в случае успешного преобразования }
В случае неудачного преобразования if-условие будет иметь false-значение.