Для неявного преобразования пользовательского типа (класс или структура) во встроенный тип (int, double и т.д.) применяется специальный тип перегрузочного операторного метода operator. Он является статическим и определяется в классе или структуре. 
    
После преобразования, с объектом класса или структуры можно производить любые арифметические или другие действия.
    
Синтаксис:
public static implicit operator тип_возврата (пользовательский_тип obj) {
return значение;
}
 
   После преобразования, с объектом класса или структуры можно производить любые арифметические или другие действия.
Синтаксис:
public static implicit operator тип_возврата (пользовательский_тип obj) {
return значение;
}
  Main.cs  
     
usingSystem;publicclassFive {-  
intval = 5; -  
//специальный тип перегрузочного операторного метода operator -  
publicstaticimplicitoperatorint(Five obj) { -   
returnobj.val; -  
} }publicclassTen {-  
intval = 10; -  
//специальный тип перегрузочного операторного метода operator -  
publicstaticimplicitoperatorint(Ten obj) { -   
returnobj.val; -  
} }classProgram {-  
publicstaticintMain() { -   
Five F =newFive(); -   
Ten T =newTen(); -   
//теперь с объектами можно выполнять арифметические или другие действия -   
intres = F + T; -   
Console.WriteLine(res); -   
Console.ReadKey(); -   
return0; -  
} }
usingSystem;publicclassFive {-  
intval = 5; -  
//специальный тип перегрузочного операторного метода operator -  
publicstaticimplicitoperatorint(Five obj) { -   
returnobj.val; -  
} }publicclassTen {-  
intval = 10; -  
//специальный тип перегрузочного операторного метода operator -  
publicstaticimplicitoperatorint(Ten obj) { -   
returnobj.val; -  
} }classProgram {-  
publicstaticintMain() { -   
Five F =newFive(); -   
Ten T =newTen(); -   
//теперь с объектами можно выполнять арифметические или другие действия -   
intres = F + T; -   
Console.WriteLine(res); -   
Console.ReadKey(); -   
return0; -  
} }
    
15