War diese Seite hilfreich?
Ihr Feedback ist uns wichtig. Teilen Sie uns Ihre Meinung mit.
Weiteres Feedback?
1500 verbleibende Zeichen
Exportieren (0) Drucken
Alle erweitern
Dieser Artikel wurde manuell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. Weitere Informationen
Übersetzung
Original

Gewusst wie: Sichere Umwandlung von bool? in bool (C#-Programmierhandbuch)

Der bool?-Typ, der NULL-Werte zulässt, kann drei verschiedene Werte enthalten: true, false und null. Aus diesem Grund kann der bool?-Typ nicht in Bedingungen mit if, for oder while verwendet werden. Beispielsweise verursacht der folgende Code einen Compilerfehler:

bool? b = null;
if (b) // Error CS0266.
{
}

Dies ist nicht zulässig, da unklar ist, was null im Kontext eines bedingten Ausdrucks bedeutet. Wenn Sie bool? in einer bedingten Anweisung verwenden möchten, überprüfen Sie zunächst die HasValue-Eigenschaft, um sicherzustellen, dass der Wert nicht null ist, und wandeln Sie den Typ dann in bool um. Weitere Informationen finden Sie unter bool. Wenn Sie die Umwandlung für einen bool?-Typ mit dem Wert null durchführen, wird bei der Prüfung eine InvalidOperationException ausgelöst. Das folgende Beispiel zeigt eine Möglichkeit, bool? sicher in bool umzuwandeln:

bool? test = null;
// Other code that may or may not
// give a value to test.
if(!test.HasValue) //check for a value
{
    // Assume that IsInitialized
    // returns either true or false.
    test = IsInitialized();
}
if((bool)test) //now this cast is safe
{
   // Do something.
}

Community-Beiträge

Anzeigen:
© 2015 Microsoft