Was ist der Unterschied zwischen bool
und Boolean
Typen in C #?
Was ist der Unterschied zwischen bool
und Boolean
Typen in C #?
Antworten:
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
und Boolean
ist nicht das gleiche. Einer ist ein primitiver Datentyp und der andere ist ein Objekt.
Es gibt keinen Unterschied - bool ist einfach ein Alias von System.Boolean.
http://msdn.microsoft.com/en-us/library/c8f5xwh7(VS.71).aspx
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
Hinweis:
Wenn Sie eine boolesche Variable benötigen, die auch den Wert null haben kann, verwenden Sie bool. Weitere Informationen finden Sie unter Nullable Types (C # -Programmierhandbuch).
VS2010
Hinweis:
Wenn Sie eine boolesche Variable benötigen, die auch den Wert null haben kann, verwenden Sie bool?. Weitere Informationen finden Sie unter Nullable Types (C # -Programmierhandbuch).
bool
sie null enthalten könnte, aber Boolean
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.
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.
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
Beachten Sie, dass dies Boolean
nur funktioniert using System;
, wenn Sie es haben (was normalerweise, aber nicht unbedingt enthalten ist) (es sei denn, Sie schreiben es als System.Boolean
). bool
braucht nichtusing System;
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.
bool
und Boolean
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 keine ConvertTo
Methode aufrufen , um sie in einen anderen Typ zu konvertieren.
bool
und Boolean
beide Referenztypen sind". Die Wörter bool
und Boolean
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).
Vielleicht ist Bool ein bisschen "leichter" als Boolean; Interessanterweise ändert dies:
namespace DuckbillServerWebAPI.Models
{
public class Expense
{
. . .
public bool CanUseOnItems { get; set; }
}
}
... dazu:
namespace DuckbillServerWebAPI.Models
{
public class Expense
{
. . .
public Boolean CanUseOnItems { get; set; }
}
}
... 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)
System.Boolean
eher als nur Boolean
. Das using System;
wurde angezeigt, weil es Boolean
richtig interpretiert werden durfte als System.Boolean
. Nicht wirklich leichter als nur weniger ausführlich.