Sdílet prostřednictvím


Jak: bezpečně nádech z bool? k bool (C# program televize)

bool? Typ s možnou hodnotou Null může obsahovat tři různé hodnoty: true, false, a null.Proto bool? typu nelze použít v podmíněné jako s if, for, nebo while.Následující kód například způsobí chybu kompilátoru.

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

To není povoleno, protože nejasná co null znamená v souvislosti se podmínka.Použití bool? v podmíněného příkazu zkontrolujte, zda jeho HasValue zajistit, že její hodnota není vlastnost nulla potom odevzdaných na bool.Další informace naleznete v tématu bool.Pokud provádíte tavby na bool? s hodnotou null, InvalidOperationException bude vyvolána při zkoušce podmíněné.Následující příklad ukazuje jeden způsob, jak bezpečně nádech z bool? na bool:

Příklad

            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.
            }

Viz také

Referenční dokumentace

Literál klíčová slova (C#-Reference)

Typy s možnou hodnotou Null (Příručka programování C#)

Koncepty

Příručka programování C#