81
int value=0;

if (value == 0)
{
    value = null;
}

value上記に設定するにはどうすればよいnullですか?

どんな助けでも大歓迎です。

4

7 に答える 7

121

.Net では、またはその他の構造体nullに値を割り当てることはできません。int代わりにNullable<int>、またはint?略して次のように使用します。

int? value = 0;

if (value == 0)
{
    value = null;
}

参考文献

于 2013-10-22T15:34:42.870 に答える
111

また、条件付き代入の値として「null」を使用することはできません。例えば..

bool testvalue = false;
int? myint = (testvalue == true) ? 1234 : null;

次の場合に失敗します。Type of conditional expression cannot be determined because there is no implicit conversion between 'int' and '<null>'.

したがって、ヌルもキャストする必要があります...これは機能します:

int? myint = (testvalue == true) ? 1234 : (int?)null;

更新 (2021 年 10 月):

C# 9.0 の時点で、「 Target-Typed 」条件式を使用できます。C# 9 はコンパイル時に式を評価することで結果の型を事前に決定できるため、この例は機能します。

于 2014-09-30T06:11:34.837 に答える
2

int は null を許可しません。

int? value = 0  

または使用

Nullable<int> value
于 2016-03-25T05:30:38.697 に答える
0

整数変数を nullable として宣言します。例:int? variable=0; variable=null;

于 2013-10-22T15:42:20.773 に答える