Compartilhar via


Como: Converter com segurança do bool? para bool (translation from VPE for Csharp Programming guia)

The bool? tipo que permite valor nulo pode conter três valores diferentes: true, false, e null. Portanto, a bool? tipo não pode ser usado em condicionais, sistema autônomo com if, for, ou while. Por exemplo, esse código não compila com CS0266 de erro do compilador:

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

Isso não é permitido porque ele é obscuro que null meio no contexto de uma condicional. Para usar um bool? em uma demonstrativo condicional, primeiro verifique seu HasValue propriedade para garantir que seu valor não é nulle, em seguida, converta-a bool. Para obter mais informações, consulte bool.Se você executar a conversão em um bool? com um valor de null, um InvalidOperationException será lançada no teste condicional. O exemplo a seguir mostra uma maneira de converter com segurança do bool? para bool:

Exemplo

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

Consulte também

Conceitos

Guia de Programação C#

Referência

Palavras-chave literal (translation from VPE for Csharp Reference)

Tipos anuláveis (guia de programação C#)