null可能な整数から予期せぬ動作を除いて私の頭を引き出しています。Nullable整数を含む文字列に何も設定しない何も結果がありません。0
- 私は
Nothing
にInteger
を設定した場合、予想通り、それはNothing
になります。 Integer?
をString
、すなわちNothing
に設定すると、0になります。
もちろん、String
をInteger?
に明示的にキャストするかどうかにかかわらず、これを取得します。
私はこれをかなり簡単に回避できることを実感しましたが、私は何が欠けているか知りたいと思います。
Dim NullString As String = Nothing
Dim NullableInt As Integer? = CType(NullString, Integer?) 'Expected NullableInt to be Nothing, but it's 0!
NullableInt = Nothing 'This works, of course. NullableInt is Nothing.
EDIT:/上執着ことで混乱しているように見えInteger?
と皆に明示的な変換なしては、以前私がここに私のコードを持っていました。 Option Strict Onはこのタイプのものを捕まえるという提案がたくさんありました。しかし、これは実際にはヌル可能型よりも前の文字列から整数への変換ルールの奇妙なものですが、まだそれらに影響します。
これらの種類のミスを早期に捕捉するには、[オプションを厳密にする]を使用します。 –
なぜ文字列変数をNullable INTEgerに割り当てるのですか? Option Strictを有効にすることに同意する –
Option Strictをオンにすると、Option Strictを1ファイルずつ有効にすることができます。これは、ファイルの作業中にエラーを処理する必要があります。 –