为了账号安全,请及时绑定邮箱和手机立即绑定

C#中自定义显式/隐式转换的问题

C#中自定义显式/隐式转换的问题

慕森卡 2018-12-07 01:21:33
在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; } }
查看完整描述

1 回答

?
30秒到达战场

TA贡献1828条经验 获得超6个赞

应该没区别吧

查看完整回答
反对 回复 2019-01-21
  • 1 回答
  • 0 关注
  • 335 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信