Pregunta

¿Cuál es la diferencia entre los tipos bool y Boolean en C #?

¿Fue útil?

Solución

bool es un alias para System.Boolean al igual que int es un alias para System.Int32 . Vea una lista completa de alias aquí: Tabla de tipos incorporados (Referencia de C #) .

Otros consejos

No creo que haya uno.

bool es solo un alias para System.Boolean

Son uno en el mismo. bool es solo un alias para Boolean.

No hay diferencia, bool es simplemente un alias de System.Boolean.

http://msdn.microsoft.com/en -us / library / c8f5xwh7 (VS.71) .aspx

Me doy cuenta de que esto es muchos años después, pero me topé 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, use bool.   Para obtener más información, consulte Tipos anulables (Guía de programación de C #).

VS2010

  

Nota:

     

Si necesita una variable booleana que también puede tener un valor nulo, use bool ?.   Para obtener más información, consulte Tipos anulables (Guía de programación de C #).

Son los mismos. 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 una gran cantidad de VB.Net y C #, entonces es posible que prefieras Boolean porque funciona en ambos lugares.

Uno es un alias para el otro.

Como se ha dicho, son lo mismo. Hay dos porque bool es una palabra clave de C # y Boolean una clase .Net.

bool es un alias para la clase booleana. Utilizo el alias cuando declaro una variable y el nombre de la clase cuando invoco un método en la clase.

Son los mismos, Bool es solo System.Boolean acortado. Use Boolean cuando esté con un programador de VB.net, ya que funciona con C # y Vb

Tenga en cuenta que Boolean solo funcionará si tiene usando System; (que generalmente, pero no necesariamente, está incluido) (a menos que lo escriba como System.Boolean ). bool no necesita para usar el Sistema;

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 Boolean. 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.

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 " convertTO " Método 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.

Quizás bool sea un poco " más ligero " que booleano; Curiosamente, cambiando 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; }
    }
}

... provocó que mi archivo cs brotara un " usando System; " Cambiando el tipo de nuevo a " bool " causó que el cabello de la cláusula de uso se volviera gris.

(Visual Studio 2010, proyecto WebAPI)

bool es un alias para Boolean. Lo que hacen los alias es reemplazar una cadena de texto con otra (como buscar / reemplazar todo en notepad ++), justo antes de compilar el código. El uso de uno sobre el otro no tiene efecto en el tiempo de ejecución.

En la mayoría de los otros idiomas, uno sería un tipo primitivo y el otro sería un tipo de objeto (tipo de valor y tipo de referencia en la jerga C #). C # no te da la opción de elegir entre los dos. Cuando se desea llamar a un método estático definido en la clase booleana, se trata automáticamente a Boolean como un tipo de referencia. Si creas una nueva variable booleana, automáticamente la tratará como un tipo de referencia (a menos que uses el método Activator.CreateInstance).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top