我有这样的功能

public static implicit operator MyClass(string v) { return new MyClass(v); }

和写var.myclass = NULL ;.这就要求隐式操作,并传递空字符串,这将导致混乱在我的代码(我用的反射和不希望添加一种特殊情况)。我怎样才能写MyClass的=空,而不会引起操作者的隐式

我试图写

public static implicit operator MyClass(string v) { return  v == null ? null : new MyClass(v); }

但是,这会导致一个计算器

有帮助吗?

解决方案

我相信你的问题是,三元运算符的两边必须相同或兼容的类型。

试着写

if (v == null)
    return null;
else
    return new MyClass(v);

修改:我只能重现您的问题,如果我做MyClass一个结构,在这种情况下,你的问题是不可能的;一个结构的不能为空。

请提供更多的细节。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top