[C#] implicit 關鍵字

  • 2817
  • 0

[C#] implicit 關鍵字

Introduction

explicit 是一樣的,都屬於自訂型別轉換,差別在於,implicit 是隱含轉換,因此不用透過 (cast) 方式來轉換物件型別。

表示式如下

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

 

Examples


   class class1 {
        public int id;
        /*定義明確轉換運算子,可將class1型別明確轉換成class2型別*/
        public static implicit operator class2(class1 cl1) {
            class2 cl2 = new class2();
            cl2.id = cl1.id * 2; /*轉換時class2的id是class1的id乘以2*/
            return cl2; /*回傳轉換物件*/
        }
    }
    class class2 {
        public int id;
    }
    class Program {
        static void Main(string[] args) {
            class1 c1 = new class1();/*初始化class1物件*/
            c1.id = 100;
            class2 c2 = c1;/*將class1型別的物件隱含轉換成class2型別的物件,並不需使用(CAST)*/
            Console.WriteLine(c2.id);
            Console.ReadLine();
        }
    }

 

執行結果

2010-05-05_004609

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