¿Cuál es la diferencia entre los tipos bool
y Boolean
en C#?¿Cuál es la diferencia entre los tipos Bool y Boolean en C#
Respuesta
bool
es un alias para System.Boolean
igual que int
es un alias de System.Int32
. Vea una lista completa de alias aquí: Built-In Types Table (C# Reference).
No creo que exista.
bool
es sólo un alias para System.Boolean
Ellos son uno en el mismo. bool es solo un alias para Boolean.
Uno es un alias para el otro.
Son lo mismo. Boolean ayuda a simplificar la conversión entre C# y VB.Net. La mayoría de los programadores de C# tienden a preferir 'bool', pero si estás en una tienda donde hay muchos VB.Net y C#, entonces quizás prefieras booleano porque funciona en ambos lugares.
Como se ha dicho, son lo mismo. Hay dos porque bool es una palabra clave C# y una clase Boolean .Net.
Entonces, ¿no sería mejor para la compatibilidad multiplataforma? –
bool es un alias para la clase booleana. Utilizo el alias cuando declaro una variable y el nombre de la clase cuando llamo a un método en la clase.
Fuera de interés: ¿por qué usaría ambos? Yo abogo por usar uno u otro. Utilice los alias o no, de lo contrario el código se ve desordenado e inconsistente. –
Creo que se ve complicado cuando no se usan ambos. Utilice el alias para declarar el tipo de datos y use el nombre de clase actuall cuando acceda a métodos estáticos: cadena x = String.Format ("Today is: {0}", DateTime.Now); –
Lo haría: int i = Int32.Parse (...); ? Tengo un par de problemas con eso. En primer lugar, VS se destacará de manera diferente por defecto (sé que puede cambiar esto, pero la mayoría de los desarrolladores solo usan el resaltado de sintaxis predeterminado). En segundo lugar, la búsqueda es más difícil especialmente con longs (long/Int64). –
No hay diferencia - bool es simplemente un alias de System.Boolean.
http://msdn.microsoft.com/en-us/library/c8f5xwh7(VS.71).aspx
me di cuenta que es muchos años más tarde, pero me encontré con esta página de Google con la misma pregunta.
Hay una pequeña diferencia en la página de MSDN a partir de ahora.
VS2005
Nota:
Si necesita una variable booleana que también puede tener un valor nulo, el uso bool. Para obtener más información, vea Tipos anulables (Guía de programación C#).
VS2010
Nota:
Si necesita una variable booleana que también puede tener un valor nulo, el uso bool ?. Para obtener más información, vea Tipos anulables (Guía de programación C#).
Me ha caído la pata - parece ser un error en la documentación. Vi la página VS2005 primero (¡parece más alta en los rankings de Google para mí!), Y pensé que implicaba que 'bool' podría contener null, pero' Boolean' no podría. Aunque hay un enlace de la documentación más antigua a la más nueva, no leí la documentación más reciente lo suficiente como para darme cuenta de la única diferencia "?". –
Lo siento pero es incorrecto, no se puede convertir bool o Bolean en nulo porque son tipos que aceptan valores – devTimmy
"Boolean" es una estructura que contiene métodos (por ejemplo, Equals (Boolean) & FalseString()). "bool" es un tipo de datos que solo contiene un 0 o 1.
Quizás bool es un poco más "ligera" de Boole; Curiosamente, el cambio de esto:
namespace DuckbillServerWebAPI.Models
{
public class Expense
{
. . .
public bool CanUseOnItems { get; set; }
}
}
... a esto:
namespace DuckbillServerWebAPI.Models
{
public class Expense
{
. . .
public Boolean CanUseOnItems { get; set; }
}
}
... hizo que mi archivo cs a brotar un "using System;" Al cambiar el tipo a "bool", el pelo de la cláusula de uso se volvió gris.
(Visual Studio 2010, proyecto WebAPI)
Tenga en cuenta que sólo se Boolean
trabajo estaba usted tiene using System;
(que suele ser, aunque no necesariamente, incluido) (a menos que usted lo escribe como System.Boolean
). bool
no necesita using System;
Son lo mismo, Bool es simplemente System.Boolean abreviado. Use Boolean cuando está con un programador de VB.net, ya que funciona con C# y Vb
bool es un tipo primitivo, lo que significa que el valor (verdadero/falso en este caso) se almacena directamente en la variable. Boolean es un objeto. Una variable de tipo Boolean almacena una referencia a un objeto booleano. La única diferencia real es el almacenamiento. Un objeto siempre ocupará más memoria que un tipo primitivo, pero en realidad, cambiar todos sus valores booleanos a bool no tendrá un impacto notable en el uso de la memoria.
que estaba equivocado; así es como funciona en Java con Boolean y Boolean. En C#, bool y Boolean son ambos tipos de referencia. Ambos almacenan su valor directamente en la variable, ambos no pueden ser nulos, y ambos requieren un método "convertTO" para almacenar sus valores en otro tipo (como int). Solo importa cuál use si necesita llamar a una función estática definida dentro de la clase booleana.
'bool' y' Boolean' no son dos tipos diferentes, ese tipo no es un tipo de referencia, puede llamar a un método estático en ese * un * tipo usando cualquiera de los identificadores, y de hecho no necesita llamar a un método 'ConvertTo' para convertirlo a otro tipo. – Servy
No es correcto que "' bool' y 'Boolean' sean ambos tipos de referencia". Las palabras 'bool' y' Boolean' se refieren al mismo tipo, y ese tipo es un tipo de valor, no un tipo de referencia. –
Gracias, estaba tratando de verificar si C# actuó igual que java en este campo. Tu respuesta es la única que lo compara con Java (aunque quizás no intencionalmente). :) – bvdb
bool es un alias de Boole. Lo que hacen los alias es reemplazar una cadena de texto por otra (como buscar/reemplazar-todo en el bloc de notas ++), justo antes de compilar el código. Usar uno sobre el otro no tiene efecto en el tiempo de ejecución.
En la mayoría de otros idiomas, uno sería un tipo primitivo y el otro sería un tipo de objeto (tipo de valor y el tipo de referencia en C# jerga). C# no le da la opción de elegir entre los dos. Cuando desea llamar a un método estático definido en la clase Boolean, trata automáticamente a Boolean como un tipo de referencia. Si crea una nueva variable booleana, la trata automáticamente como un tipo de referencia (a menos que use el método Activator.CreateInstance).
Boolean es un tipo de valor, no un tipo de referencia. – Servy
- 1. ¿Cuál es la diferencia entre boolean y bool en MySQL?
- 2. ¿Cuál es la diferencia entre MySQL BOOL y los tipos de datos de columna BOOLEAN?
- 3. Diferencia entre los tipos _Bool y bool en C?
- 4. ¿Hay alguna diferencia entre BOOL y Boolean en Objective-C?
- 5. ¿Cuál es la diferencia entre "bool" y "bool?"?
- 6. BOOL vs Boolean
- 7. ¿Cuál es la diferencia entre System.Type y System.RuntimeType en C#?
- 8. ¿Cuál es la diferencia entre booleano y booleano en Java?
- 9. ¿Cuál es la diferencia entre los tipos de datos y los literales en Java?
- 10. Diferencia entre los tipos de cadena y char [] en C++
- 11. ¿Cuál es la diferencia entre los datos-dojotype y dojoType?
- 12. ¿Cuál es la diferencia entre Visual C++ y C++?
- 13. En C# ¿cuál es la diferencia entre ToUpper() y ToUpperInvariant()?
- 14. Cuál es la diferencia entre memset y memcpy en C
- 15. ¿Cuál es la diferencia entre File y FileInfo en C#?
- 16. ¿Cuál es la diferencia entre printf() y puts() en C?
- 17. ¿Cuál es la diferencia entre C++ administrado y C#?
- 18. ¿Cuál es la diferencia entre C y C incrustado?
- 19. ¿Cuál es la diferencia entre Managed C++ y C++/CLI?
- 20. ¿cuál es la diferencia entre atan y atan2 en C++?
- 21. ¿Cuál es la diferencia entre 'int'? y 'int' en C#?
- 22. ¿Cuál es la diferencia entre Process y ProcessStartInfo en C#?
- 23. ¿Cuál es la diferencia entre strtok_r y strtok_s en C?
- 24. Cuál es la diferencia entre & y operadores & en C#
- 25. ¿Cuál es la diferencia entre Const y Static en C#?
- 26. ¿Cuál es la diferencia entre los tipos de datos brutos largos y largos en Oracle?
- 27. ¿Cuál es la diferencia entre los tipos de cadenas VARCHAR (255) y TINYTEXT en MySQL?
- 28. ¿Cuál es la diferencia entre falso y FALSO?
- 29. ¿Diferencias entre varios tipos de bool?
- 30. Cuál es la diferencia entre functors y "genéricos"
Desde el enlace de arriba, microsoft dice que las palabras clave de tipo C# y sus alias son intercambiables. Pero ¿por qué necesitamos alias? Desde mi punto de vista Boolean es más significativo que bool e Int32 es más significativo que int. ¿Por qué alias? –
@asim: ¿pereza? Es menos tipeo y evita la necesidad de importar el sistema. Personalmente, prefiero los alias. Escribir "int" es mucho más rápido que escribir "Int32". –
@asmin: Es una cosa de C. int, float, etc. son palabras clave familiares para los programadores C y C++, por lo que Microsoft decidió usar estos alias para coherencia. –