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

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

От версии 1.2
отредактировано Alexandr Fokin
на 2023/02/25 13:07
Изменить комментарий: К данной версии нет комментариев
К версии 1.7
отредактировано Alexandr Fokin
на 2023/02/25 13:20
Изменить комментарий: К данной версии нет комментариев

Сводка

Подробности

Свойства страницы
Содержимое
... ... @@ -16,26 +16,25 @@
16 16  В теле класса может быть определен метод как преобразование экземпляров класса в экземпляры внешнего типа, так и экземпляр внешнего типа в экземпляр класса.
17 17  \\Имеет определенные ограничения: например не позволяет указывать преобразования дочернего типа к родительскому иначе бы приводил к неоднозначности.
18 18  
19 -В некоторых случаях лучше явно реализовать модуль преобразования в виде компонента бизнес логики, а не использовать данных механизм.
19 о многих случаях лучше явно реализовать модуль преобразования в виде отдельного компонента бизнес логики (Converter / Transformator), а не использовать данных механизм. Механизм больше подходит для преобразования базовых или примитивных типов (Например наличие в проекте собственного специализированного числового типа данных, которые преобразуется в некоторые стандартные типы).
20 20  )))|(% style="width:440px" %){{code language="c#"}}class MyClass1
21 21  {
22 22   public static implicit operator Type1 (MyClass1 instance)
23 - { //... }
23 + { /*...*/ }
24 24  }
25 25  class MyClass2
26 26  {
27 27   public static explicit operator Type1 (MyClass2 instance)
28 - { //... }
28 + { /*...*/ }
29 29  }
30 30  
31 -static void Action(Type1 param){ // ... }
31 +static void Action(Type1 param){ /*...*/ }
32 32  
33 33  MyClass1 myClass1Var;
34 34  MyClass2 myClass2Var;
35 35  
36 36  Action(myClass1Var); //implicit
37 -Action((Type1)myClass1Var); //explicit
38 -{{/code}}
37 +Action((Type1)myClass1Var); //explicit{{/code}}
39 39  |(% style="width:138px" %)Ограничения для Generic типов|(% style="width:869px" %) |(% style="width:440px" %){{code language="c#"}}interface Logic1
40 40  {
41 41   //В случае struct приведет к упаковке
... ... @@ -50,4 +50,3 @@
50 50   where T : ParameterInterfaceType
51 51  }{{/code}}
52 52  
53 -