Share via

Facebook x.com LinkedIn Email

bool (C# Reference)

  • 2013年02月04日

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

Literals

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.

Conversions

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.");
}

Example

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.
 */

C# Language Specification

For more information, see the C# Language Specification. The language specification is the definitive source for C# syntax and usage.

See Also

Reference

C# Keywords

Integral Types Table (C# Reference)

Built-In Types Table (C# Reference)

Implicit Numeric Conversions Table (C# Reference)

Explicit Numeric Conversions Table (C# Reference)

Concepts

C# Programming Guide

Other Resources

C# Reference