Csharp/C#教程:cs0553不允许从基类进行用户定义的转换分享


cs0553不允许从基类进行用户定义的转换

我真正想要实现的目标:为object引入一个全局别名。

由于C#中没有全局别名,我想通过提供另一个可以隐式转换所有对象的类myclass来解决这个问题,例如:

 myclass foo () { return new object(); } // should be ok myclass bar () { return "bla"; } // should be ok 

如何?

(转换运营商:

  public static implicit operator myclass(object o) { return new given(); } 

只输出编译器错误cs0553)

好吧,你做不到。 从C#4规范的第10.10.3节:

仅当满足以下所有条件时,才允许类或结构声明从源类型S到目标类型T的转换:

在你的情况下,这不是真的,因此错误。

你还没有说你为什么要这样做(你提到“没有全局别名”但你不清楚你想要实现的目标),但你不能这样做。 您可以创建构造函数或静态方法来创建类的实例,但不能使用运算符。

上述就是C#学习教程:cs0553不允许从基类进行用户定义的转换分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/1040765.html

(0)
上一篇 2022年1月28日
下一篇 2022年1月28日

精彩推荐