Powiel możliwe:
Why can't I use interface with explicit operator?Dlaczego C# nie zezwala typom wykorzystującym kompozycję na niejawne konwersje dla interfejsów?
Kiedy to zrobić:
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);
}
}
otrzymuję błąd kompilatora takiego:
„ImageEditor.Effect .chochlik legalny operator ImageEditor.IEffect (ImageEditor.Effect) ": Konwersje zdefiniowane przez użytkownika do lub z interfejsu są niedozwolone.
Dlaczego nie są one dozwolone? Czy to nie jest dobra praktyka?
Możliwe duplikaty: http://stackoverflow.com/questions/2433204/why-cant-i-use-interface-with-expic-operator-operator –