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