Was ist der Unterschied zwischen bool- und booleschen Typen in C#?
Frage
Was ist der Unterschied zwischen bool
Und Boolean
Typen in C#?
Lösung
bool
ist ein Alias für System.Boolean
genauso wie int
ist ein Alias für System.Int32
.Eine vollständige Liste der Aliase finden Sie hier: Tabelle der integrierten Typen (C#-Referenz).
Andere Tipps
Ich glaube nicht, dass es einen gibt.
bool
ist nur ein Alias für System.Boolean
Sie sind ein und dasselbe.bool ist nur ein Alias für Boolean.
Es gibt keinen Unterschied – bool ist einfach ein Alias von System.Boolean.
http://msdn.microsoft.com/en-us/library/c8f5xwh7(VS.71).aspx
Ich weiß, das viele Jahre später, aber ich auf dieser Seite von Google mit der gleichen Frage gestolpert.
Es gibt einen kleinen Unterschied auf der MSDN-Seite ab sofort.
VS2005
Hinweis:
Wenn Sie eine Boolesche Variable erfordern, das auch einen Wert von null haben kann, verwenden Bool. Weitere Informationen finden Sie Nullable Types (C # -Programmierhandbuch).
VS2010
Hinweis:
Wenn Sie eine Boolesche Variable erfordern, das auch einen Wert von null haben kann, verwenden Bool ?. Weitere Informationen finden Sie Nullable Types (C # -Programmierhandbuch).
Es ist die gleiche. Boolean hilft Umwandlung hin und her zwischen C # und VB.Net zu vereinfachen. Die meisten C # Programmierer neigen ‚Bool‘ bevorzugen, aber wenn man in einem Geschäft ist, wo es eine Menge sowohl VB.Net und C # ist, dann können Sie Boolesche bevorzugen, weil es in beiden Orten funktioniert.
Das eine ist ein Alias für das andere.
Wie gesagt, sind sie gleich. Es gibt zwei, weil Bool ein C # Schlüsselwort und Boolesche eine .NET-Klasse ist.
bool ist ein Alias für die Boolean-Klasse.Ich verwende den Alias, wenn ich eine Variable deklariere, und den Klassennamen, wenn ich eine Methode für die Klasse aufrufe.
Es ist die gleiche, Bool ist nur System.Boolean verkürzt. Verwenden Sie Boolesche wenn Sie mit einem VB.net-Programmierer sind, da sie sowohl mit C # und Vb
funktioniert, dass Boolean
Hinweis wird nur Arbeit wurden Sie haben using System;
(die in der Regel, aber nicht notwendigerweise, enthalten) (es sei denn Sie es aus wie System.Boolean
schreiben). bool
nicht using System;
benötigen
Bool ist ein primitiver Typ, was bedeutet, dass der Wert (true / false in diesem Fall) direkt in den Variablen gespeichert wird. Boolean ist ein Objekt. Eine Variable des Typs Boolean speichert eine Referenz auf einen booleschen Objekts. Der einzige wirkliche Unterschied ist die Lagerung. Ein Objekt wird immer mehr Speicher als eine primitive Art nehmen, aber in Wirklichkeit ändert alle Boolesche Werte in bool wird keine spürbaren Auswirkungen auf die Speichernutzung haben gehen.
Ich war falsch; das ist, wie es in Java mit boolean und Boolean funktioniert. In C #, bool und Boolean sind beiden Referenztypen. Beide speichern ihren Wert direkt in den Variablen, die beide nicht Null sein können, und beide erfordern ein „ConvertTo“ Verfahren zum Speichern ihrer Werte in einer anderen Art (wie int). Ist es nur wichtig, die Sie verwenden, wenn Sie eine statische Funktion definiert innerhalb der Booleschen Klasse aufrufen müssen.
Vielleicht Bool ist ein bisschen „leichter“ als Boolean; Interessanterweise ändert dies:
namespace DuckbillServerWebAPI.Models
{
public class Expense
{
. . .
public bool CanUseOnItems { get; set; }
}
}
... folgt aus:
namespace DuckbillServerWebAPI.Models
{
public class Expense
{
. . .
public Boolean CanUseOnItems { get; set; }
}
}
... verursacht meine cs-Datei ein sprießen "using System;" Ändern verursacht die Art zurück zu „Bool“ die Haare der using-Klausel ergrauen.
(Visual Studio 2010, WebAPI Projekt)
bool ist ein Alias für Boolean.Aliase ersetzen eine Textzeichenfolge durch eine andere (wie „Alles durchsuchen/ersetzen“ in Notepad++), kurz bevor der Code kompiliert wird.Die Verwendung eines über dem anderen hat zur Laufzeit keine Auswirkung.
In den meisten anderen Sprachen wäre einer ein primitiver Typ und der andere ein Objekttyp (Werttyp und Referenztyp im C#-Jargon).C# bietet Ihnen nicht die Möglichkeit, zwischen beiden zu wählen.Wenn Sie eine in der Boolean-Klasse definierte statische Methode aufrufen möchten, wird Boolean automatisch als Referenztyp behandelt.Wenn Sie eine neue boolesche Variable erstellen, wird diese automatisch als Referenztyp behandelt (es sei denn, Sie verwenden die Methode Activator.CreateInstance).