10

私は新しいMVCブックを作成していますが、もちろん、サンプルはすべて通常どおりc#になっています。

次のようなコード行があります

public bool? WillAttend { get; set; }

著者は、疑問符は、これがtrue、falseの可能性があるnull許容(トライステート)ブールであることを示していると説明しています。またはnull。(新しいC#3規則。)

vb.netはこのような規則をサポートしていますか?確かに、vb.netでブール値を宣言でき、明示的にNull(vb.netではNothing)に設定できます。

違いは何ですか。C#にはそれ以上のものがありますか?利点は?

4

4 に答える 4

42

VBでは、null許容値を3つの方法で宣言できます。

Dim ridesBusToWork1? As Boolean
Dim ridesBusToWork2 As Boolean?
Dim ridesBusToWork3 As Nullable(Of Boolean)

参考資料:MSDN-Nullable Value Types(Visual Basic)

于 2009-08-04T02:25:34.840 に答える
27
  1. bool?null許容値型の省略構文です:ieNullable<bool>
  2. VB.NETでは、次のいずれかを使用できます:Boolean?またはNullable(Of Boolean)

バッキングプロパティを使用して、次のように記述できます。

Private _willAttend As Nullable(Of Boolean)
Public Property WillAttend As Nullable(Of Boolean)
    Get
        Return _willAttend
    End Get
    Set(value As Nullable(Of Boolean))
        _willAttend = value
    End Set
End Property

または、次のような自動実装プロパティを使用します。

Public Property WillAttend As Boolean?
于 2009-08-04T02:24:17.527 に答える
3

Nullablesは、.NET2.0以降で使用できます。そのバージョンでは、Microsoftはジェネリックスを実装しました(Nullableはジェネリック型です)。.NET 3.0以降、?を使用できるようになりました。VB.NETでも(以前は(ブール値の)Nullableしか使用できませんでした)。

つまり、.NET3.0のLucasAardvarkが言ったように、nullableの宣言を3つ使用できますが、.NET2.0では1つしか使用できません。

Dim myBool as Nullable(of Boolean)
于 2009-08-04T09:01:19.340 に答える
0

Nullableは、null割り当てをサポートしないint、boolなどの値型で使用されます。これは通常、メソッドが整数を返すときに非常に便利です。メソッドの結果が無効な場合は、負の整数の代わりにnullに設定されたnull許容整数を返すことができます。これは、長期的には有効な結果になる可能性があります。それが頭に浮かぶ唯一の利点です。他の人は、VB.NETでこれを行う方法を投稿しています。私はそれには入りません。

于 2009-08-04T02:32:44.190 に答える