явное преобразование пользовательского типа

Для явного преобразования пользовательского типа (класс или структура) во встроенный тип (int, double и т.д.) применяется специальный тип перегрузочного операторного метода operator. Он является статическим и определяется в классе или структуре.
После преобразования, с объектом класса или структуры можно производить любые арифметические или другие действия.

Синтаксис:
public static explicit operator тип_возврата (пользовательский_тип obj) {
 return значение;
}
Скрыть

Показать

Копировать
  Main.cs  
  • using System;
  •  
  • public class Five {
  •  int val = 5;
  •  //специальный тип перегрузочного операторного метода operator
  •  public static explicit operator int(Five obj) {
  •   return obj.val;
  •  }
  • }
  •  
  • public class Ten {
  •  int val = 10;
  •  //специальный тип перегрузочного операторного метода operator
  •  public static explicit operator int(Ten obj) {
  •   return obj.val;
  •  }
  • }
  •  
  • class Program {
  •  public static int Main() {
  •   Five F = new Five();
  •   Ten T = new Ten();
  •   //теперь с объектами можно выполнять арифметические или другие действия
  •   //нужно явно привести объект класса к нужному типу
  •   int res = (int)F + (int)T;
  •   Console.WriteLine(res);
  •   Console.ReadKey();
  •   return 0;
  •  }
  • }
15