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

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

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

Сводка

Подробности

Свойства страницы
Содержимое
... ... @@ -10,15 +10,15 @@
10 10  {
11 11   interfaceTypeVar.InterfaceMethod();
12 12  }{{/code}}
13 -|(% style="width:138px" %)Upcasting and Dowcasting|(% style="width:869px" %)Также как и AS выполняет попытку приведения к типу, но в случае неудачи бросает Exception.|(% style="width:440px" %){{code language="none"}}​ParentType p1 = (ParentType)childVar;
13 +|(% style="width:138px" %)Upcasting and Dowcasting|(% style="width:869px" %)Также как и AS выполняет попытку приведения к типу, но в случае ошибки бросает Exception.|(% style="width:440px" %){{code language="none"}}​ParentType p1 = (ParentType)childVar;
14 14  InterfaceType p2 = (InterfaceType)instanceVar;​
15 -(​ChildType)p1;{{/code}}
15 +(​ChildType)childVar;{{/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)