C#基礎:自定義顯式轉換和隱式轉換
阿新 • • 發佈:2019-02-19
顯式轉換和隱式轉換不僅可以用在數學運算子,還可以自定義型別之間的顯式轉換和隱式轉換。
示例程式碼如下:
//自定義 隱式轉換,顯示轉換
- public class ConvClass1 {//型別1:隱式轉換關鍵字implicit
- public int val; //int型別 operator運算子關鍵字
- public static implicit operator ConvClass2(ConvClass1 op1) {
- ConvClass2 con = new ConvClass2();
- con.val = op1.val;//隱式轉換 關鍵字implicit
- return con;
- }
- }
- public class ConvClass2 {//型別2:顯式轉換關鍵字explicit
- public double val;//double型別
- public static explicit operator ConvClass1(ConvClass2 op2) {
- ConvClass1 con = new ConvClass1();
- checked{ con.val = (int)op2.val; }//顯式轉換 關鍵字explicit
- return con;
- }
- }
- public class Pargram{
- public stitic void Main(string[] args){
- ConvClass1 op1 = new ConvClass1();
- op1.val = 6;
- ConvClass2 op2 = op1;//隱式轉換
- ConvClass2 op3 = (ConvClass2)op1;//顯式轉換
- Console.WriteLine(op1.val);
- Console.WriteLine(op2.val);
- Console.WriteLine(op3.val);
- }
- }