在C#中如果定義顯式/隱式轉換是不是沒有位置的要求,只要在任一類中定義了轉換就可以?
例如代碼1和代碼2木有區別咯?
代碼1
public class ConvClass1 { public int val; public static implicit operator ConvClass2(ConvClass1 op1) { ConvClass2 returnVal = new ConvClass2(); returnVal.val = op1.val; return returnVal; } public static implicit operator ConvClass1(ConvClass2 op1) { ConvClass1 returnVal = new ConvClass1(); checked { returnVal.val = (int)op1.val; } return returnVal; } } public class ConvClass2 { public double val; }
代碼2
public class ConvClass1 { public int val; public static implicit operator ConvClass2(ConvClass1 op1) { ConvClass2 returnVal = new ConvClass2(); returnVal.val = op1.val; return returnVal; } } public class ConvClass2 { public double val; public static implicit operator ConvClass1(ConvClass2 op1) { ConvClass1 returnVal = new ConvClass1(); checked { returnVal.val = (int)op1.val; } return returnVal; } }
添加回答
舉報
0/150
提交
取消