bool (C# リファレンス)bool (C# Reference)

bool キーワードは System.Boolean の別名です。The bool keyword is an alias of System.Boolean. ブール値 (truefalse) を格納する変数を宣言するために使われます。It is used to declare variables to store the Boolean values: true and false.

注意

3 値ロジックをサポートする必要がある場合は、bool? 型を使用します。たとえば、3 値ブール型をサポートするデータベースを操作する場合などです。Use the bool? type, if you need to support the three-valued logic, for example, when you work with databases that support a three-valued Boolean type. bool? オペランドの場合、定義済みの & 演算子と | 演算子は 3 値ロジックをサポートします。For the bool? operands, the predefined & and | operators support the three-valued logic. 詳細については、「Boolean logical operators (ブール論理演算子)」記事の「Nullable Boolean logical operators (null 許容論理演算子)」セクションを参照してください。For more information, see the Nullable Boolean logical operators section of the Boolean logical operators article.

リテラルLiterals

bool 変数にはブール値を代入できます。You can assign a Boolean value to a bool variable. また、bool として評価される式も bool 変数に代入できます。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
*/

bool 変数の既定値は false です。The default value of a bool variable is false. bool? 変数の既定値は null です。The default value of a bool? variable is null.

変換Conversions

C++ では、bool 型の値を int 型の値に変換できます。つまり、false はゼロと同等であり、true はゼロ以外の値と同等です。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. C# では、bool 型と他の型の間に変換はありません。In C#, there is no conversion between the bool type and other types. たとえば、次の if ステートメントは C# では無効です。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.");
}

int 型の変数をテストするには、0 などの値と明示的に比較する必要があります。次はその例です。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. こうしたチェックは IsLetterIsLower で実行され、どちらも bool 型を返します。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# 言語仕様C# language specification

詳細については、「C# 言語の仕様」を参照してください。For more information, see the C# Language Specification. 言語仕様は、C# の構文と使用法に関する信頼性のある情報源です。The language specification is the definitive source for C# syntax and usage.

関連項目See also