366

C#の型boolとの違いは何ですか?Boolean

4

15 に答える 15

407

boolのエイリアスとSystem.Boolean同じようintにのエイリアスですSystem.Int32。エイリアスの完全なリストについては、ビルトインタイプテーブル(C#リファレンス)を参照してください。

于 2008-09-25T17:39:20.950 に答える
53

あるとは思わない。

boolの単なるエイリアスですSystem.Boolean

于 2008-09-25T17:37:05.027 に答える
22

それらは同じものです。boolはブール値の単なるエイリアスです。

于 2008-09-25T17:37:43.387 に答える
19

違いはありません-boolは単にSystem.Booleanのエイリアスです。

http://msdn.microsoft.com/en-us/library/c8f5xwh7(VS.71).aspx

于 2008-09-25T17:43:20.300 に答える
15

これは何年も後のことだと思いますが、同じ質問でグーグルからこのページに出くわしました.

現在、MSDN ページに 1 つの小さな違いがあります。

VS2005

ノート:

null の値を持つこともできるブール変数が必要な場合は、bool を使用します。詳細については、「Null 許容型 (C# プログラミング ガイド)」を参照してください。

VS2010

ノート:

null の値を持つこともできるブール変数が必要な場合は、bool? を使用します。詳細については、「Null 許容型 (C# プログラミング ガイド)」を参照してください。

于 2012-09-26T23:43:55.240 に答える
13

それらは同じです。ブール値は、C#とVB.Net間の変換を簡素化するのに役立ちます。ほとんどのC#プログラマーは「ブール」を好む傾向がありますが、VB.NetとC#の両方がたくさんあるショップにいる場合は、両方の場所で機能するため、ブールを好むかもしれません。

于 2008-09-25T17:40:28.187 に答える
10

言われているように、それらは同じです。boolはC#キーワードであり、ブール値は.Netクラスであるため、2つあります。

于 2008-09-25T17:40:40.370 に答える
9

一方はもう一方のエイリアスです。

于 2008-09-25T17:37:55.743 に答える
5

boolは、ブールクラスのエイリアスです。変数を宣言するときはエイリアスを使用し、クラスでメソッドを呼び出すときはクラス名を使用します。

于 2008-09-25T17:40:49.620 に答える
2

bool はプリミティブ型です。つまり、値 (この場合は true/false) が変数に直接格納されます。ブール値はオブジェクトです。Boolean 型の変数は、Boolean オブジェクトへの参照を格納します。唯一の本当の違いはストレージです。オブジェクトは常にプリミティブ型よりも多くのメモリを消費しますが、実際には、すべてのブール値をブール値に変更しても、メモリ使用量に顕著な影響はありません。

私は間違っていた; それがブール値とブール値を使用してJavaで機能する方法です。C# では、bool と Boolean はどちらも参照型です。どちらも値を変数に直接格納し、どちらも null にすることはできず、値を別の型 (int など) に格納するには「convertTO」メソッドが必要です。Boolean クラス内で定義された静的関数を呼び出す必要がある場合にのみ、どちらを使用するかが問題になります。

于 2016-08-05T16:51:30.543 に答える
2

それらは同じです。Bool は単に System.Boolean を短縮したものです。C# と Vb の両方で機能するため、VB.net プログラマーと一緒にいる場合はブール値を使用します。

于 2014-08-20T10:36:37.543 に答える
0

タイプ文字列を取得しない限り、実際の違いはありません。リフレクションまたは GetType() を使用すると、両方に対して {Name = "Boolean" FullName = "System.Boolean"} が得られます。

于 2020-11-01T19:03:40.767 に答える
-1

bool は Boolean のエイリアスです。エイリアスが行うことは、コードがコンパイルされる直前に、あるテキスト文字列を別の文字列に置き換えることです (notepad++ の search/replace-all のように)。一方を他方の上に使用しても、実行時には効果がありません。

他のほとんどの言語では、1 つはプリミティブ型で、もう 1 つはオブジェクト型 (C# の専門用語では値型と参照型) です。C# には、この 2 つから選択するオプションはありません。Boolean クラスで定義された静的メソッドを呼び出したい場合、自動的に Boolean を参照型として扱います。新しいブール変数を作成すると、自動的に魔法のように参照型として扱われます (Activator.CreateInstance メソッドを使用しない場合)。

于 2016-08-05T20:07:59.733 に答える
-2

おそらく、bool は Boolean よりも少し「軽い」ものです。興味深いことに、これを次のように変更します。

namespace DuckbillServerWebAPI.Models
{
    public class Expense
    {
        . . .
        public bool CanUseOnItems { get; set; }
    }
}

...これに:

namespace DuckbillServerWebAPI.Models
{
    public class Expense
    {
        . . .
        public Boolean CanUseOnItems { get; set; }
    }
}

...私のcsファイルが「using System;」を発生させました。型を「bool」に戻すと、using 句の髪が灰色に変わりました。

(Visual Studio 2010、WebAPI プロジェクト)

于 2013-10-08T19:04:05.060 に答える