Gibt es in vb.net so etwas wie eine Nullable bool?

8

Ich arbeite gerade an meinem neuen MVC-Buch und natürlich sind die Samples wie immer in c #.

Es gibt eine Codezeile, die sagt

%Vor%

Der Autor erklärt, dass das Fragezeichen darauf hinweist, dass es sich um einen nullbaren (tri-state) Bool handelt, der wahr oder falsch sein kann. oder null. (Eine neue C # 3 Konvention.)

Unterstützt vb.net eine solche Konvention? Natürlich kann ich einen booleschen Wert in vb.net deklarieren und ich kann ihn explizit auf Null (Nothing in vb.net) setzen.

Was ist der Unterschied? IS gibt es mehr in c #. Vorteile?

    
Seth Spearman 04.08.2009, 02:20
quelle

4 Antworten

21
  1. bool? ist nur Kurzform Syntax für einen Nullwerttyp : d. h. Nullable<bool>
  2. In VB.NET können Sie entweder eins verwenden: Boolean? oder Nullable(Of Boolean) .

Sie können es so mit einer Backing-Eigenschaft schreiben:

%Vor%

Oder verwenden Sie einfach eine automatisch implementierte Eigenschaft wie folgt:

%Vor%     
Joel Coehoorn 04.08.2009, 02:24
quelle
39

Sie können in VB einen NULL-Wert 3 Möglichkeiten deklarieren:

%Vor%

Weitere Informationen: MSDN - Nullable Value-Typen (Visual Basic) .

    
Kredns 04.08.2009 02:25
quelle
3

Nullables sind seit .NET 2.0 verfügbar. In dieser Version hat Microsoft Generics implementiert (Nullable ist ein generischer Typ). Seit .NET 3.0 können Sie den? auch in VB.NET (zuvor konnte nur Nullable (of Boolean)) verwendet werden.

Wie von Lucas Aardvark in .NET 3.0 gesagt, können Sie 3 Deklarationen von NULL-Zeichen verwenden, aber in .NET 2.0 nur 1

%Vor%     
Gertjan 04.08.2009 09:01
quelle
0

Nullable wird verwendet für Werttypen wie Ints, Bools usw., die keine Nullzuweisungen unterstützen. Dies ist im Allgemeinen sehr praktisch, wenn Methoden Ganzzahlen zurückgeben. Wenn das Ergebnis einer Methode ungültig ist, können Sie einfach einen nullbaren int-Wert auf null anstelle einer negativen Ganzzahl zurückgeben, was auf lange Sicht zu einem gültigen Ergebnis führen kann. Das ist so ziemlich der einzige Vorteil, der einem einfällt. Andere haben geschrieben, wie man das in VB.NET macht. Ich werde nicht darauf eingehen.

    
Sergey 04.08.2009 02:32
quelle

Tags und Links