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
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#)