可能性の重複:
Bug?? If you assign a value to a nullable integer via a ternary operator, it can't become nullVB.NETのC#のデフォルトキーワードと同じものは何ですか?
この質問は、多くの重複のように見えるかもしれませんが、それは実際には特別な理由のために要求されています。例えば、このコードを取る:そのコードで
Dim n As Integer? = If(True, Nothing, 1)
を、三元表現が何も返すべきであるが、これはC#のであれば、それは0に設定Nだ、私はdefault(int?)
を言うことができる、それが完璧に動作します。今では、私は3進法をディッチし、通常のIfブロックを使用する必要があるように見えますが、私は本当に3値を使用したいと思います。
VB.NETがC#のデフォルトに相当するものが何もない場合、どうやってこの動作を説明できますか?
'Nothing'は' default(int) 'と等価です。なぜなら、式に基づく推論型は' int'ではなく 'int'ですからです。これは 'If(true、Nothing、new Integer?(1))'で表示されます。 – Marc
VB.NET *にはC#のデフォルトと同等のものはありません。そうであれば、タイプ推論を使用してNothingがnullの整数のデフォルト値であるNothing、つまり0ではないと判断できる可能性があります。 – oscilatingcretin
間接的には正しいです。 C#では、 'default'は型を取ります。これは推論に使用できます。 VBでは、Nothingはこの中で受動的な役割を果たしているようです。 – Marc