当前位置: 首页 > 编程语言 > C#

为什么我不能使用带有显式运算符的接口?Share

时间:2023-04-10 14:51:10 C#

为什么我不能使用带有显式运算符的接口?我只是想知道是否有人知道您不允许使用隐式或显式运算符的接口的原因?例如,这会引发编译时错误:publicstaticexplicitoperatorMyPlayer(IPlayerplayer){...}“不允许在接口之间进行用户定义的转换”谢谢,C#规范的第10.9.3节对此做了一些解释.不允许使用短版本,以便用户可以确保引用类型和接口之间的转换成功,当且仅当引用类型实际实现了该接口,并且在转换发生时实际引用了同一个对象。定义引用类型之间的隐式或显式转换使用户期望引用会发生变化;毕竟,同一个引用不能有两种类型。另一方面,用户对引用类型和接口类型之间的转换没有相同的期望。不允许从接口类型或到接口类型的用户定义的转换。特别是,此限制确保在转换为接口类型时不会发生用户定义的转换,并且仅当转换的对象实际实现指定的接口类型时,到接口类型的转换才会成功。以上是C#学习教程:为什么不能使用带显式运算符的接口?如果所有分享的内容对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: