bool (Riferimenti per C#)

La parola chiave bool è un alias di System.Boolean. Viene utilizzata per dichiarare variabili per archiviare i valori Boolean, true e false.

Nota

Se è necessaria una variabile booleana che possa avere anche il valore null, utilizzare bool?. Per ulteriori informazioni, vedere Tipi nullable (Guida per programmatori C#).

Valori letterali

È possibile assegnare un valore Boolean a una variabile bool. È inoltre possibile assegnare un'espressione che restituisce bool a una variabile bool.

public class BoolTest
{
    static void Main()
    {
        bool b = true;

        // WriteLine automatically converts the value of b to text.
        Console.WriteLine(b);

        int days = DateTime.Now.DayOfYear;


        // Assign the result of a boolean expression to b.
        b = (days % 2 == 0);

        // Branch depending on whether b is true or false.
        if (b)
        {
            Console.WriteLine("days is an even number");
        }
        else
        {
            Console.WriteLine("days is an odd number");
        }   
    }
}
/* Output:
  True
  days is an <even/odd> number
*/

Il valore predefinito di una variabile bool è false. Il valore predefinito di una variabile bool? è null.

Conversioni

In C++ un valore di tipo bool può essere convertito in un valore di tipo int. In altri termini, false è equivalente a zero e true è equivalente a valori diversi da zero. In C# non viene eseguita alcuna conversione tra il tipo bool e gli altri tipi. Ad esempio, l'istruzione if seguente non è valida in C#:

int x = 123;

// if (x)   // Error: "Cannot implicitly convert type 'int' to 'bool'"
{
    Console.Write("The value of x is nonzero.");
}

Per eseguire il test di una variabile di tipo int, è necessario confrontarla esplicitamente con un valore, ad esempio zero, come illustrato di seguito:


if (x != 0)   // The C# way
{
    Console.Write("The value of x is nonzero.");
}

Esempio

In questo esempio, il programma controlla che il carattere inserito da tastiera sia una lettera. In caso affermativo, controlla se il carattere è minuscolo o maiuscolo Questi controlli vengono eseguiti con IsLetter e IsLower, che restituiscono il tipo bool:

public class BoolKeyTest
{
    static void Main()
    {
        Console.Write("Enter a character: ");
        char c = (char)Console.Read();
        if (Char.IsLetter(c))
        {
            if (Char.IsLower(c))
            {
                Console.WriteLine("The character is lowercase.");
            }
            else
            {
                Console.WriteLine("The character is uppercase.");
            }
        }
        else
        {
            Console.WriteLine("Not an alphabetic character.");
        }
    }
}
/* Sample Output:
    Enter a character: X
    The character is uppercase.

    Enter a character: x
    The character is lowercase.

    Enter a character: 2
    The character is not an alphabetic character.
 */

Specifiche del linguaggio C#

Per ulteriori informazioni, vedere la Specifiche del linguaggio C#. La specifica del linguaggio è la fonte ufficiale per la sintassi e l'utilizzo di C#.

Vedere anche

Riferimenti

Parole chiave di C#

Tabella dei tipi integrali (Riferimenti per C#)

Tabella dei tipi incorporati (Riferimenti per C#)

Tabella delle conversioni numeriche implicite (Riferimenti per C#)

Tabella delle conversioni numeriche esplicite (Riferimenti per C#)

Concetti

Guida per programmatori C#

Altre risorse

Riferimenti per C#