Şaf*_*Gür 5 .net c# null operator-overloading equals-operator
我有一个叫做Message重载这些运算符的类:
public static bool operator ==(Message left, Message right)
public static bool operator !=(Message left, Message right)
public static bool operator ==(Message left, string right)
public static bool operator !=(Message left, string right)
public static bool operator ==(string left, Message right)
public static bool operator !=(string left, Message right)
Run Code Online (Sandbox Code Playgroud)
我要==和!=运营商比保持类型的比较参考等String和Message,但
var message = new Message();
var isNull = message == null;
Run Code Online (Sandbox Code Playgroud)
给我这个:
以下方法或属性之间的调用不明确:'Message.operator ==(Message,Message)'和'Message.operator ==(Message,string)'
我知道这是因为这两个Message和String是引用类型,他们都可以null,但我希望能够使用==opreator检查邮件是否为空.
我可以==为空值重载吗?我尝试重载它object并调用object.ReferenceEquals(object, object)过载,但这没有帮助.
提供实现operator ==(Message left, object right)并检查其类型,right以查看它是否为null,字符串或消息.
或者,为带有字符串的Message定义一个隐式构造函数.有关示例,请参阅运算符重载和不同类型.
| 归档时间: |
|
| 查看次数: |
291 次 |
| 最近记录: |