0

重複の可能性:
null 合体演算子の「反対」はありますか? (…どの言語で?)

ここで 3 行目をもっと簡潔に書く方法はありますか?

int? i = GetSomeNullableInt();
int? j = GetAnother();
int k = i == null ? i : j;

null合体演算子については知っていますが、探している動作はこれとは逆です。

int k == i ?? j;
4

3 に答える 3

1

C# では、コードは必要なものを記述する最も簡潔な方法です。

于 2011-09-12T18:51:27.430 に答える
1

卑劣 - 私が返信している間にあなたが編集しました。:)

これ以上簡潔に書く方法はないと思います。ただし、== null ではなく、"HasValue" プロパティを使用します。その方が意図が分かりやすいです。

int? k = !i.HasValue ? i : j; 

(ところで - k もヌル可能でなければなりません。)

于 2011-09-12T18:54:48.237 に答える
1

そのオペレーターのポイントは何ですか?ユースケースはかなり限られています。一時変数を使用せずに単一行のソリューションを探している場合は、そもそも必要ありません。

int k = GetSomeNullableInt() == null ? null : GetAnother();
于 2011-09-12T18:55:00.600 に答える