[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();
}
}
執行結果
三小俠 小弟獻醜,歡迎指教