c# nullable int に null を値として割り当てることができないのはなぜですか [重複] 質問する

c# nullable int に null を値として割り当てることができないのはなぜですか [重複] 質問する

null許容intにnull値を割り当てることができない理由を説明します。例:

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

そのコードの何が問題なのですか?

ベストアンサー1

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

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

おすすめ記事