bool (Referencia de C#)
La palabra clave bool es un alias de System.Boolean. Se utiliza para declarar variables que almacenan los valores booleanos, true y false.
Nota
Si requiere una variable booleana que también puede tener un valor de null, utilice bool?. Para obtener más información, vea Tipos que aceptan valores NULL (Guía de programación de C#).
Literales
Puede asignar un valor booleano a una variable de tipo bool. También puede asignar una expresión que se evalúe como bool a una variable de tipo 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
*/
El valor predeterminado de una variable bool es false. El valor predeterminado de una variable bool? es null.
Conversiones
En C++, un valor de tipo bool se puede convertir a un valor de tipo int; es decir, false equivale a cero y true equivale a valores distintos de cero. En C#, no es posible realizar la conversión del tipo bool a otros tipos o viceversa. Por ejemplo, la instrucción if siguiente no es válida en C#:
int x = 123;
// if (x) // Error: "Cannot implicitly convert type 'int' to 'bool'"
{
Console.Write("The value of x is nonzero.");
}
Para probar una variable de tipo int, hay que compararla explícitamente con un valor (por ejemplo, cero), como se indica a continuación:
if (x != 0) // The C# way
{
Console.Write("The value of x is nonzero.");
}
Ejemplo
En este ejemplo, se escribe un carácter desde el teclado y el programa comprueba si se trata de una letra. Si es una letra, comprueba si está en minúsculas o mayúsculas. Estas comprobaciones se realizan con IsLetter y IsLower, que devuelven el 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.
*/
Especificación del lenguaje C#
Para obtener más información, vea la Especificación del lenguaje C#. La especificación del lenguaje es la fuente definitiva de la sintaxis y el uso de C#.
Vea también
Referencia
Tabla de tipos enteros (Referencia de C#)
Tabla de tipos integrados (Referencia de C#)
Tabla de conversiones numéricas implícitas (Referencia de C#)
Tabla de conversiones numéricas explícitas (Referencia de C#)