2
私は、オプションの< T>という名前のカスタムクラスを持っています。ネストされた暗黙の演算子
public static implicit operator Optional<T>(T value)
{
return new Optional<T>(value);
}
public static implicit operator T(Optional<T> value)
{
return value.value;
}
これらの作品のように、今、すべての罰金、直接操作まで、[OK]を::このクラスは、暗黙の演算子、このようなものを上書きします
Optional<int> val = 33; //ok
int iVal = val; //ok
しかし、これは動作しません:
Optional<Optional<int>> val = 33; //error, cannot convert implicitly
私は前のケースをどのようにサポートできるのだろうかと思っています。
乾杯。
明示的な演算子を使用してこのケースを支援する方法の例を追加できますか?ありがとう。 – Gusman
@Gusman AからBへとBからCへの暗黙の変換がある場合、暗黙的なユーザー定義変換を1つだけ使用するので、 'C c =(B)a;'と書くことができます。 – Servy
私はあなたが明示的演算子をオーバーライドすることを意図していると思いました。ありがとう。 – Gusman