[C#] explicit 關鍵字

  • 3487
  • 0

[C#] explicit

Introduction

無意間發現有這個東西,雖然目前我也還沒用在專案中,隨手來記錄一下。

explicit : 關鍵字用於實作型別運算子的轉換,使用者可以自訂型別轉換的邏輯,其中 explicit 為明確轉換,因此必須經由 (cast) 的方式使用轉換。

轉型運算子表示式如下

public static explicit operator 目標型別 (來源型別名稱)

 

Examples


   class TClass1 {
        public int id;
        /*定義明確轉換運算子,可將class1型別明確轉換成class2型別*/
        public static explicit operator TClass2(TClass1 cl1) {
            TClass2 cl2 = new TClass2();
            cl2.id = cl1.id * 3; /*轉換時TClass2的id是TClass1的id乘以3*/
            return cl2; /*回傳轉換物件*/
        }
    }
    class TClass2 {
        public int id;
    }
    class Program {
        static void Main(string[] args) {
            TClass1 oTClass1 = new TClass1();/*初始化TClass1物件*/
            oTClass1.id = 100;
            TClass2 oTClass2 = (TClass2)oTClass1;//*TClass1型別的物件明確轉換成TClass2型別的物件*/
            Console.WriteLine(oTClass2.id);
            Console.ReadKey();
        }
    }

輸出結果

2010-05-05_003633

三小俠  小弟獻醜,歡迎指教