C#の型bool
との違いは何ですか?Boolean
15 に答える
bool
のエイリアスとSystem.Boolean
同じようint
にのエイリアスですSystem.Int32
。エイリアスの完全なリストについては、ビルトインタイプテーブル(C#リファレンス)を参照してください。
あるとは思わない。
bool
の単なるエイリアスですSystem.Boolean
それらは同じものです。boolはブール値の単なるエイリアスです。
違いはありません-boolは単にSystem.Booleanのエイリアスです。
http://msdn.microsoft.com/en-us/library/c8f5xwh7(VS.71).aspx
これは何年も後のことだと思いますが、同じ質問でグーグルからこのページに出くわしました.
現在、MSDN ページに 1 つの小さな違いがあります。
VS2005
ノート:
null の値を持つこともできるブール変数が必要な場合は、bool を使用します。詳細については、「Null 許容型 (C# プログラミング ガイド)」を参照してください。
VS2010
ノート:
null の値を持つこともできるブール変数が必要な場合は、bool? を使用します。詳細については、「Null 許容型 (C# プログラミング ガイド)」を参照してください。
それらは同じです。ブール値は、C#とVB.Net間の変換を簡素化するのに役立ちます。ほとんどのC#プログラマーは「ブール」を好む傾向がありますが、VB.NetとC#の両方がたくさんあるショップにいる場合は、両方の場所で機能するため、ブールを好むかもしれません。
言われているように、それらは同じです。boolはC#キーワードであり、ブール値は.Netクラスであるため、2つあります。
一方はもう一方のエイリアスです。
boolは、ブールクラスのエイリアスです。変数を宣言するときはエイリアスを使用し、クラスでメソッドを呼び出すときはクラス名を使用します。
bool はプリミティブ型です。つまり、値 (この場合は true/false) が変数に直接格納されます。ブール値はオブジェクトです。Boolean 型の変数は、Boolean オブジェクトへの参照を格納します。唯一の本当の違いはストレージです。オブジェクトは常にプリミティブ型よりも多くのメモリを消費しますが、実際には、すべてのブール値をブール値に変更しても、メモリ使用量に顕著な影響はありません。
私は間違っていた; それがブール値とブール値を使用してJavaで機能する方法です。C# では、bool と Boolean はどちらも参照型です。どちらも値を変数に直接格納し、どちらも null にすることはできず、値を別の型 (int など) に格納するには「convertTO」メソッドが必要です。Boolean クラス内で定義された静的関数を呼び出す必要がある場合にのみ、どちらを使用するかが問題になります。
それらは同じです。Bool は単に System.Boolean を短縮したものです。C# と Vb の両方で機能するため、VB.net プログラマーと一緒にいる場合はブール値を使用します。
タイプ文字列を取得しない限り、実際の違いはありません。リフレクションまたは GetType() を使用すると、両方に対して {Name = "Boolean" FullName = "System.Boolean"} が得られます。
bool は Boolean のエイリアスです。エイリアスが行うことは、コードがコンパイルされる直前に、あるテキスト文字列を別の文字列に置き換えることです (notepad++ の search/replace-all のように)。一方を他方の上に使用しても、実行時には効果がありません。
他のほとんどの言語では、1 つはプリミティブ型で、もう 1 つはオブジェクト型 (C# の専門用語では値型と参照型) です。C# には、この 2 つから選択するオプションはありません。Boolean クラスで定義された静的メソッドを呼び出したい場合、自動的に Boolean を参照型として扱います。新しいブール変数を作成すると、自動的に魔法のように参照型として扱われます (Activator.CreateInstance メソッドを使用しない場合)。
おそらく、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 プロジェクト)