bool (C# Reference)
The bool keyword is an alias of System.Boolean. It is used to declare variables to store the Boolean values, true and false.
Note
|
|---|
|
If you require a Boolean variable that can also have a value of null, use bool?. For more information, see Nullable Types (C# Programming Guide). |
You can assign a Boolean value to a bool variable. You can also assign an expression that evaluates to bool to a bool variable.
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 */
The default value of a bool variable is false. The default value of a bool? variable is null.
In C++, a value of type bool can be converted to a value of type int; in other words, false is equivalent to zero and true is equivalent to nonzero values. In C#, there is no conversion between the bool type and other types. For example, the following if statement is invalid in C#:
int x = 123; // if (x) // Error: "Cannot implicitly convert type 'int' to 'bool'" { Console.Write("The value of x is nonzero."); }
To test a variable of the type int, you have to explicitly compare it to a value, such as zero, as follows:
if (x != 0) // The C# way { Console.Write("The value of x is nonzero."); }
In this example, you enter a character from the keyboard and the program checks if the input character is a letter. If it is a letter, it checks if it is lowercase or uppercase. These checks are performed with the IsLetter, and IsLower, both of which return the bool type:
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. */
For more information, see the C# Language Specification. The language specification is the definitive source for C# syntax and usage.
Note