Was ist der Unterschied zwischen bool
und Boolean
Typen in C #?
338
bool
ist ein Alias für System.Boolean
genauso wie int
ein Alias für System.Int32
. Eine vollständige Liste der Aliase finden Sie hier: Tabelle der integrierten Typen (C # -Referenz) .
boolean
undBoolean
ist nicht das gleiche. Einer ist ein primitiver Datentyp und der andere ist ein Objekt.Ich glaube nicht, dass es einen gibt.
bool
ist nur ein Alias fürSystem.Boolean
quelle
Sie sind ein und dasselbe. bool ist nur ein Alias für Boolean.
quelle
Es gibt keinen Unterschied - bool ist einfach ein Alias von System.Boolean.
http://msdn.microsoft.com/en-us/library/c8f5xwh7(VS.71).aspx
quelle
Mir ist klar, dass dies viele Jahre später ist, aber ich bin mit der gleichen Frage auf diese Seite von Google gestoßen.
Auf der MSDN-Seite gibt es ab sofort einen kleinen Unterschied.
VS2005
VS2010
quelle
bool
sie null enthalten könnte, aberBoolean
nicht. Obwohl es einen Link von der älteren zur neueren Dokumentation gibt, habe ich die neuere Dokumentation nicht gründlich genug gelesen, um den einzigen?
Unterschied zu bemerken .Sie sind gleich. Boolean vereinfacht das Hin- und Herkonvertieren zwischen C # und VB.Net. Die meisten C # -Programmierer bevorzugen 'bool', aber wenn Sie in einem Geschäft sind, in dem es sowohl VB.Net als auch C # gibt, bevorzugen Sie möglicherweise Boolean, da es an beiden Orten funktioniert.
quelle
Wie gesagt, sie sind die gleichen. Es gibt zwei, da bool ein C # -Schlüsselwort und Boolean eine .Net-Klasse ist.
quelle
Einer ist ein Alias für den anderen.
quelle
bool ist ein Alias für die Boolesche Klasse. Ich verwende den Alias beim Deklarieren einer Variablen und den Klassennamen beim Aufrufen einer Methode für die Klasse.
quelle
Sie sind die gleichen, Bool ist nur System.Boolean verkürzt. Verwenden Sie Boolean, wenn Sie mit einem VB.net-Programmierer arbeiten, da dieser sowohl mit C # als auch mit Vb funktioniert
quelle
Beachten Sie, dass dies
Boolean
nur funktioniertusing System;
, wenn Sie es haben (was normalerweise, aber nicht unbedingt enthalten ist) (es sei denn, Sie schreiben es alsSystem.Boolean
).bool
braucht nichtusing System;
quelle
bool ist ein primitiver Typ, dh der Wert (in diesem Fall true / false) wird direkt in der Variablen gespeichert. Boolean ist ein Objekt. Eine Variable vom Typ Boolean speichert einen Verweis auf ein Boolesches Objekt. Der einzige wirkliche Unterschied ist die Lagerung. Ein Objekt belegt immer mehr Speicher als ein primitiver Typ, aber in Wirklichkeit hat das Ändern aller Ihrer Booleschen Werte in Bool keine spürbaren Auswirkungen auf die Speichernutzung.Ich lag falsch; So funktioniert es in Java mit Boolean und Boolean. In C # sind Bool und Boolean beide Referenztypen. Beide speichern ihren Wert direkt in der Variablen, beide dürfen nicht null sein, und beide benötigen eine "convertTO" -Methode, um ihre Werte in einem anderen Typ (z. B. int) zu speichern. Es ist nur wichtig, welche Sie verwenden, wenn Sie eine statische Funktion aufrufen müssen, die in der Booleschen Klasse definiert ist.
quelle
bool
undBoolean
sind nicht zwei verschiedene Typen, dass ein Typ kein Referenztyp ist, können Sie eine statische Methode für diesen einen Typ unter Verwendung eines der beiden Bezeichner aufrufen, und Sie müssen tatsächlich keineConvertTo
Methode aufrufen , um sie in einen anderen Typ zu konvertieren.bool
undBoolean
beide Referenztypen sind". Die Wörterbool
undBoolean
beide beziehen sich auf denselben Typ, und dieser Typ ist ein Werttyp, kein Referenztyp.bool ist ein Alias für Boolean. Aliase ersetzen eine Textzeichenfolge durch eine andere (wie Search / Replace-All in Notepad ++), kurz bevor der Code kompiliert wird. Die Verwendung übereinander hat zur Laufzeit keine Auswirkung.
In den meisten anderen Sprachen wäre eine ein primitiver Typ und die andere ein Objekttyp (Werttyp und Referenztyp im C # -Jargon). C # bietet Ihnen nicht die Möglichkeit, zwischen beiden zu wählen. Wenn Sie eine statische Methode aufrufen möchten, die in der Booleschen Klasse definiert ist, wird Boolescher Wert automatisch als Referenztyp behandelt. Wenn Sie eine neue boolesche Variable erstellen, wird sie automatisch als Referenztyp behandelt (es sei denn, Sie verwenden die Activator.CreateInstance-Methode).
quelle
Vielleicht ist Bool ein bisschen "leichter" als Boolean; Interessanterweise ändert dies:
... dazu:
... hat dazu geführt, dass aus meiner CS-Datei ein "using System" hervorgegangen ist. Wenn Sie den Typ wieder auf "bool" ändern, werden die Haare der using-Klausel grau.
(Visual Studio 2010, WebAPI-Projekt)
quelle
System.Boolean
eher als nurBoolean
. Dasusing System;
wurde angezeigt, weil esBoolean
richtig interpretiert werden durfte alsSystem.Boolean
. Nicht wirklich leichter als nur weniger ausführlich.