这个问题已经在这里有了答案:
已关闭10年。
当我这样做时:
public struct Effect
{
public IEffect IEffect { get; private set; }
public Effect ( IEffect effect )
{
this.IEffect = effect;
}
public static implicit operator IEffect ( Effect effect )
{
return effect.IEffect;
}
public static explicit operator Effect ( IEffect effect )
{
return new Effect ( effect );
}
}
我收到这样的编译器错误:
为什么不允许他们?这不是一个好习惯吗?
最佳答案
C#语言规范的10.10.3节对此进行了详细说明。
为什么的总结原因是...
关于c# - 为什么C#不允许使用合成的类型对接口(interface)进行隐式转换? [复制],我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4854571/