可能性の重複:私はこれを行うと
Why can't I use interface with explicit operator?なぜC#では、コンポジションを使用する型にインターフェイスの暗黙的な変換を許可しないのですか?
は:
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);
}
}
は、私はこのようなコンパイラエラーを取得:
「をImageEditor.Effect .impインターフェイスへの、または インターフェイスへのユーザー定義の変換は許可されません。
なぜ許可されていませんか?これは良い習慣ではありませんか?
可能な複製:http://stackoverflow.com/questions/2433204/why-cant-i-use-interface-with-explicit-operator –