質問

私はこの機能を持っている。

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

と書き込みvar.myclass = NULL ;.これは、暗黙のオペレータを呼び出し、自分のコードに大混乱を引き起こした文字列、(私はリフレクションを使用し、特殊なケースを追加したくない)としてnullを渡します。どのように私は暗黙の演算子を起こすことなく、MyClassの=ヌルを書き込むことができますか?

私が書いてみました。

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

しかし、それはstackoverflowのが発生します。

役に立ちましたか?

解決

私はあなたの問題は三項演算子の両側が同じまたは互換性のあるタイプのものでなければならないということであると信じています。

タグ書いてみ
if (v == null)
    return null;
else
    return new MyClass(v);

編集:私はあなたの質問が不可能であり、その場合にはMyClass構造体を作る場合、私は、あなたの問題を再現することができます。構造体ははnullにすることはできません。

より詳細な情報を提供してください。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top