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

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

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

Сводка

Подробности

Свойства страницы
Содержимое
... ... @@ -10,7 +10,7 @@
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 15  (​ChildType)p1;{{/code}}
16 16  |(% style="width:138px" %)implicit and explicit operator|(% style="width:869px" %)(((
... ... @@ -18,7 +18,7 @@
18 18  В теле класса может быть определен метод как преобразование экземпляров класса в экземпляры внешнего типа, так и экземпляр внешнего типа в экземпляр класса.
19 19  \\Имеет определенные ограничения: например не позволяет указывать преобразования дочернего типа к родительскому иначе бы приводил к неоднозначности.
20 20  
21 -Во многих случаях лучше явно реализовать модуль преобразования в виде отдельного компонента бизнес логики (Converter / Transformator / Mapper), а не использовать данных механизм. Механизм больше подходит для преобразования базовых или примитивных типов (Например наличие в проекте собственного специализированного числового типа данных, которые преобразуется в некоторые стандартные типы).
21 +Во многих случаях лучше явно реализовать модуль преобразования в виде отдельного компонента бизнес логики (Converter / Transformator / Mapper), а не использовать данный механизм. Механизм больше подходит для преобразования базовых или примитивных типов (Например наличие в проекте собственного специализированного числового типа данных, которые преобразуется в некоторые стандартные типы).
22 22  )))|(% style="width:440px" %){{code language="c#"}}class MyClass1
23 23  {
24 24   public static implicit operator Type1 (MyClass1 instance)
... ... @@ -50,3 +50,5 @@
50 50   void Method1<T>(T param)
51 51   where T : ParameterInterfaceType
52 52  }{{/code}}
53 +|(% style="width:138px" %)Ковариантность и контравариантность|(% style="width:869px" %)Ковариантность и контравариантность обобщенных интерфейсов
54 +[[https:~~/~~/metanit.com/sharp/tutorial/3.27.php>>https://metanit.com/sharp/tutorial/3.27.php]]|(% style="width:440px" %)