Изменения документа Преобразование типов
Редактировал(а) Alexandr Fokin 2023/06/26 11:34
От версии 1.1
отредактировано Alexandr Fokin
на 2023/02/25 13:04
на 2023/02/25 13:04
Изменить комментарий:
К данной версии нет комментариев
К версии 1.5
отредактировано Alexandr Fokin
на 2023/02/25 13:10
на 2023/02/25 13:10
Изменить комментарий:
К данной версии нет комментариев
Сводка
-
Свойства страницы (1 изменено, 0 добавлено, 0 удалено)
Подробности
- Свойства страницы
-
- Содержимое
-
... ... @@ -15,6 +15,8 @@ 15 15 Механизм который при вызове может выглядеть словно (Upcasting and Dowcasting), но на самом деле выполняющий преобразование одного типа в другой (подразумевает логику создания экземпляра целевого типа и наполнение его данными на основе переданной сущности). 16 16 В теле класса может быть определен метод как преобразование экземпляров класса в экземпляры внешнего типа, так и экземпляр внешнего типа в экземпляр класса. 17 17 \\Имеет определенные ограничения: например не позволяет указывать преобразования дочернего типа к родительскому иначе бы приводил к неоднозначности. 18 + 19 +Во многих случаях лучше явно реализовать модуль преобразования в виде отдельного компонента бизнес логики (Converter / Transformator), а не использовать данных механизм. Механизм больше подходит для преобразования базовых или примитивных типов. 18 18 )))|(% style="width:440px" %){{code language="c#"}}class MyClass1 19 19 { 20 20 public static implicit operator Type1 (MyClass1 instance) ... ... @@ -32,9 +32,7 @@ 32 32 MyClass2 myClass2Var; 33 33 34 34 Action(myClass1Var); //implicit 35 -Action((Type1)myClass1Var); //explicit 36 - 37 -{{/code}} 37 +Action((Type1)myClass1Var); //explicit{{/code}} 38 38 |(% style="width:138px" %)Ограничения для Generic типов|(% style="width:869px" %) |(% style="width:440px" %){{code language="c#"}}interface Logic1 39 39 { 40 40 //В случае struct приведет к упаковке