Получи случайную криптовалюту за регистрацию!

Конспект по теме 'Способы преобразования пользовательских типо | .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-значение.


Вернуться в бэклог категории C#