1. ホーム
  2. c#

[解決済み] c# nullable intにnullを代入できない理由 [重複]...

2022-05-17 22:53:17

質問

nullableなint型にnullを代入できない理由を説明してください。

int? accom = (accomStr == "noval" ? null  : Convert.ToInt32(accomStr));

このコードはどうしたんだ?

どのように解決するのですか?

問題は、NULLをintに代入できないことではありません。問題は、三項演算子によって返される両方の値が同じ型であるか、または一方が他方に暗黙的に変換可能でなければならないことです。この場合、nullはintに暗黙的に変換することができず、またその逆もできないので、明示的なキャストが必要です。代わりにこれを試してみてください。

int? accom = (accomStr == "noval" ? (int?)null : Convert.ToInt32(accomStr));