Изменения документа Преобразование типов

Редактировал(а) Alexandr Fokin 2023/06/26 11:34

От версии 1.11
отредактировано Alexandr Fokin
на 2023/02/25 13:29
Изменить комментарий: К данной версии нет комментариев
К версии 1.8
отредактировано Alexandr Fokin
на 2023/02/25 13:22
Изменить комментарий: К данной версии нет комментариев

Сводка

Подробности

Свойства страницы
Содержимое
... ... @@ -11,14 +11,14 @@
11 11   interfaceTypeVar.InterfaceMethod();
12 12  }{{/code}}
13 13  |(% style="width:138px" %)Upcasting and Dowcasting|(% style="width:869px" %)Также как и AS выполняет попытку приведения к типу, но в случае ошибки бросает Exception.|(% style="width:440px" %){{code language="none"}}​ParentType p1 = (ParentType)childVar;
14 -InterfaceType p2 = (InterfaceType)instanceVar;
15 -(​ChildType)p1;{{/code}}
14 +​ChildType p1 = (​ChildType)childVar;
15 +InterfaceType p2 = (InterfaceType)instanceVar;{{/code}}
16 16  |(% style="width:138px" %)implicit and explicit operator|(% style="width:869px" %)(((
17 17  Механизм который при вызове может выглядеть словно (Upcasting and Dowcasting), но на самом деле выполняющий преобразование одного типа в другой (подразумевает логику создания экземпляра целевого типа и наполнение его данными на основе переданной сущности).
18 18  В теле класса может быть определен метод как преобразование экземпляров класса в экземпляры внешнего типа, так и экземпляр внешнего типа в экземпляр класса.
19 19  \\Имеет определенные ограничения: например не позволяет указывать преобразования дочернего типа к родительскому иначе бы приводил к неоднозначности.
20 20  
21 -Во многих случаях лучше явно реализовать модуль преобразования в виде отдельного компонента бизнес логики (Converter / Transformator / Mapper), а не использовать данных механизм. Механизм больше подходит для преобразования базовых или примитивных типов (Например наличие в проекте собственного специализированного числового типа данных, которые преобразуется в некоторые стандартные типы).
21 +Во многих случаях лучше явно реализовать модуль преобразования в виде отдельного компонента бизнес логики (Converter / Transformator), а не использовать данных механизм. Механизм больше подходит для преобразования базовых или примитивных типов (Например наличие в проекте собственного специализированного числового типа данных, которые преобразуется в некоторые стандартные типы).
22 22  )))|(% style="width:440px" %){{code language="c#"}}class MyClass1
23 23  {
24 24   public static implicit operator Type1 (MyClass1 instance)