с использованием системы; Пространство имен ConsoleTest { класс Program { статический аннулируются Main ( строка [] арг) { // неявное隐式装换 Digit dig1 = новый Digit ( 7.0m ); десятичное Num = dig1; Разряд dig2 = 12,0 м ; Console.WriteLine ( " Num = {0} dig2 = {1} " , пит, dig2.Val); // Явный显示转换 a1 AA = новый AA {= " " , B = 1 , C = 1,0м }; BB b1 = новый ВВ { А1 = " B " , В1 = 2 , С1 = 2,0м }; АА а2 = (АА) b1; BB b2 = (ВВ) а1; Console.WriteLine ($ " {a2.A} | {a2.B} | {a2.C} "); Console.WriteLine ($ " {b2.A1} | {b2.B1} | {b2.C1} " ); Console.ReadLine (); } } Класс Digit { общественный десятичного Val; общественные цифры ( десятичный г) {Val = д; } Общественного статический неявный оператор десятичного (цифра г) { вернуть d.Val; } Общественного статический неявный оператора Digit ( десятичное d) { Вернуть новую цифру (d); } } Класс AA { публичная строка A { получить ; набор ; } Общественного INT B { получить ; набор ; } Общественного десятичного C { получить ; набор ; } Общественный статический явный оператор BB (AA с) { вернуться новый BB { A1 = сА, B1= Cb, С1 = Cc }; } } Класс BB { общественная строка A1 { получить ; набор ; } Общественного ИНТ B1 { получить ; набор ; } Общественного десятичное С1 { получить ; набор ; } Общественности статический явный оператор AA (BB с) { вернуть новый АА { = c.A1, В = c.B1, С = c.C1 }; } } }