ToString
私は内容に満足している実装された単純なクラスを持っています。さまざまなオプションに賛否両論があるかどうかを確認して、(最も)正しい方法を決定しようとしています。
以下の例では:
- クラス:
Astronaut
- タイプの変数
Astronaut
:person
私がここで雪だるまをしているオプション:
string result = person == null ? "Unknown Astronaut" : person.ToString();
string result = person.ToString() ?? "Unknown Astronaut";
string result = (person ?? "Unknown Astronaut").ToString();
string result = person ?? (object)"Unknown Astronaut";
それらについての私の見解は
- 非常に冗長で、そのレベルの冗長性は必要ありません。
- 1 よりははるかに優れていますが、
ToString
見苦しいだけでなく、そのToString
コードの例外が心配されます。 - これは人気があるようですが (こことここ)、うまくいくかどうかはわかりません。コンパイラは
string
、Astronaut
型が同じ型ではないため、合体では使用できないと不平を言いませんか。 - これは私が今最も満足しているものですが、これはボックス & が null であることを意味し
ToString
ますperson
。
要約すれば:
- 上記のいずれかに対する長所/短所はありますか?
- 考えられるオプションはありますか?