Quelle est la différence entre bool
et Boolean
types en C #?
Quelle est la différence entre bool
et Boolean
types en C #?
Réponses:
bool
est un alias pour System.Boolean
tout comme int
un alias pour System.Int32
. Consultez la liste complète des alias ici: Table des types intégrés (référence C #) .
boolean
et ce Boolean
n'est pas la même chose. L'un est un type de données primitif et l'autre est un objet.
Il n'y a aucune différence - bool est simplement un alias de System.Boolean.
http://msdn.microsoft.com/en-us/library/c8f5xwh7(VS.71).aspx
Je me rends compte que c'est plusieurs années plus tard, mais je suis tombé sur cette page de Google avec la même question.
Il y a une différence mineure sur la page MSDN à partir de maintenant.
VS2005
Remarque:
Si vous avez besoin d'une variable booléenne qui peut également avoir une valeur nulle, utilisez bool. Pour plus d'informations, consultez Types nullables (Guide de programmation C #).
VS2010
Remarque:
Si vous avez besoin d'une variable booléenne qui peut également avoir une valeur nulle, utilisez bool ?. Pour plus d'informations, consultez Types nullables (Guide de programmation C #).
bool
pourrait contenir null, mais Boolean
pas. Même s'il existe un lien entre l'ancienne et la nouvelle documentation, je n'ai pas suffisamment lu la nouvelle documentation pour remarquer la seule ?
différence.
Ce sont les mêmes. Boolean permet de simplifier la conversion entre C # et VB.Net. La plupart des programmeurs C # ont tendance à préférer `` booléen '', mais si vous êtes dans un magasin où il y a beaucoup de VB.Net et de C #, vous préférerez peut-être Boolean car il fonctionne aux deux endroits.
bool est un alias pour la classe booléenne. J'utilise l'alias lors de la déclaration d'une variable et le nom de la classe lors de l'appel d'une méthode sur la classe.
Ce sont les mêmes, Bool n'est que System.Boolean raccourci. Utilisez Boolean lorsque vous êtes avec un programmeur VB.net, car il fonctionne avec C # et Vb
Notez que Boolean
cela ne fonctionnera que si vous en avez using System;
(qui est généralement, mais pas nécessairement, inclus) (sauf si vous l'écrivez comme System.Boolean
). bool
n'a pas besoinusing System;
bool est un type primitif, ce qui signifie que la valeur (vrai / faux dans ce cas) est stockée directement dans la variable. Boolean est un objet. Une variable de type booléen stocke une référence à un objet booléen. La seule vraie différence est le stockage. Un objet prendra toujours plus de mémoire qu'un type primitif, mais en réalité, changer toutes vos valeurs booléennes en booléen n'aura pas d'impact notable sur l'utilisation de la mémoire.
J'avais tort; c'est comme ça que ça marche en java avec booléen et booléen. En C #, bool et booléen sont les deux types de référence. Les deux d'entre eux stockent leur valeur directement dans la variable, les deux ne peuvent pas être nuls, et les deux nécessitent une méthode "convertTO" pour stocker leurs valeurs dans un autre type (tel que int). Peu importe celle que vous utilisez si vous avez besoin d'appeler une fonction statique définie dans la classe booléenne.
bool
et Boolean
ne sont pas deux types différents, qu'un type est pas un type de référence, vous pouvez appeler une méthode statique que l' un de type en utilisant soit identifiant, et vous n'avez pas besoin de fait d'appeler une ConvertTo
méthode pour le convertir en un autre type.
bool
et Boolean
sont les deux types de référence". Les mots bool
et les Boolean
deux font référence au même type, et ce type est un type de valeur, pas un type de référence.
bool est un alias pour Boolean. Les alias remplacent une chaîne de texte par une autre (comme search / replace-all dans notepad ++), juste avant la compilation du code. L'utilisation de l'un sur l'autre n'a aucun effet au moment de l'exécution.
Dans la plupart des autres langages, l'un serait un type primitif et l'autre serait un type d'objet (type valeur et type référence dans le jargon C #). C # ne vous donne pas la possibilité de choisir entre les deux. Lorsque vous souhaitez appeler une méthode statique définie dans la classe booléenne, elle traite automatiquement comme booléen un type de référence. Si vous créez une nouvelle variable booléenne, elle la traite automatiquement comme un type de référence (sauf si vous utilisez la méthode Activator.CreateInstance).
Peut-être que bool est un peu "plus léger" que booléen; Fait intéressant, changer cela:
namespace DuckbillServerWebAPI.Models
{
public class Expense
{
. . .
public bool CanUseOnItems { get; set; }
}
}
...pour ça:
namespace DuckbillServerWebAPI.Models
{
public class Expense
{
. . .
public Boolean CanUseOnItems { get; set; }
}
}
... a fait germer mon fichier cs en "utilisant le système;" La modification du type en "bool" a fait griser les cheveux de la clause using.
(Visual Studio 2010, projet WebAPI)
System.Boolean
plutôt que juste Boolean
. Le using System;
se présentait parce qu'il permettait Boolean
d'être correctement interprété comme System.Boolean
. Pas vraiment plus léger, mais moins bavard.