9

int 型のページ カウンターがありますか?:

spot.ViewCount += 1;

ViewCount プロパティの値がNULL (任意の int) でない場合にのみ機能します。

なぜコンパイラはそうするのですか?

どんな解決策にも感謝します。

4

4 に答える 4

11

Nullと同じではありません0。したがって、null を int 値 (またはその他の値の型) に増やす論理演算はありません。たとえば、 null 許容 int の値を null から に増やしたい場合は、1これを行うことができます。

int? myInt = null;
myInt = myInt.HasValue ? myInt += 1 : myInt = 1;

//above can be shortened to the below which uses the null coalescing operator ??
//myInt = ++myInt ?? 1

(ただし、これは増加していないことnullに注意してください。null として設定されている場合、null 許容の int 値に整数を割り当てる効果を達成しているだけです)。

于 2013-07-30T09:37:32.580 に答える
1

null 許容型にはリフトされた演算子があるためです。一般に、これは C#での関数リフティングの特定のケースです(または、少なくともそのように見えます。間違っている場合は修正してください)。

つまり、 を使用した操作にnullnull結果が含まれます (例:1 + nullなどnull * null) 。

于 2013-07-30T09:39:57.977 に答える