Qual é a diferença entre bool
e Boolean
tipos em C #?
Qual é a diferença entre bool
e Boolean
tipos em C #?
Respostas:
bool
é um alias para System.Boolean
assim como int
é um alias para System.Int32
. Veja uma lista completa de aliases aqui: Tabela de tipos internos (referência de C #) .
boolean
e Boolean
não é a mesma coisa. Um é um tipo de dados primitivo e o outro é um objeto.
Não há diferença - bool é simplesmente um apelido de System.Boolean.
http://msdn.microsoft.com/en-us/library/c8f5xwh7(VS.71).aspx
Sei que muitos anos depois, mas encontrei esta página do google com a mesma pergunta.
Há uma pequena diferença na página do MSDN a partir de agora.
VS2005
Nota:
Se você precisar de uma variável booleana que também possa ter um valor nulo, use bool. Para obter mais informações, consulte Tipos anuláveis (Guia de programação em C #).
VS2010
Nota:
Se você precisar de uma variável booleana que também possa ter um valor nulo, use bool? Para obter mais informações, consulte Tipos anuláveis (Guia de programação em C #).
bool
poderia conter nulo, mas Boolean
não podia. Embora exista um link da documentação mais antiga para a mais recente, não li a documentação mais recente o suficiente para notar a ?
diferença única .
Eles são os mesmos. Booleano ajuda a simplificar a conversão entre C # e VB.Net. A maioria dos programadores de C # costuma preferir 'bool', mas se você estiver em uma loja onde há muitos VB.Net e C #, poderá preferir Boolean porque funciona em ambos os lugares.
bool é um alias para a classe booleana. Eu uso o alias ao declarar uma variável e o nome da classe ao chamar um método na classe.
Eles são os mesmos, Bool é apenas System.Boolean reduzido. Use Boolean quando estiver com um programador VB.net, pois ele funciona com C # e Vb
Observe que Boolean
só funcionará se você tiver using System;
(o que geralmente é, mas não necessariamente, incluído) (a menos que você o escreva como System.Boolean
). bool
não precisausing System;
bool é um tipo primitivo, significando que o valor (verdadeiro / falso neste caso) é armazenado diretamente na variável Booleano é um objeto. Uma variável do tipo Booleano armazena uma referência a um objeto Booleano. A única diferença real é o armazenamento. Um objeto sempre ocupa mais memória que um tipo primitivo, mas, na realidade, alterar todos os seus valores booleanos para bool não terá nenhum impacto perceptível no uso da memória.
Eu estava errado; é assim que funciona em java com booleano e booleano. Em C #, bool e Boolean são os dois tipos de referência. Ambos armazenam seu valor diretamente na variável, não podem ser nulos e exigem um método "convertTO" para armazenar seus valores em outro tipo (como int). É importante qual você usar se precisar chamar uma função estática definida na classe booleana.
bool
e Boolean
não são dois tipos diferentes, que um tipo não é um tipo de referência, você pode chamar um método estático em que um tipo usando um identificador, e você não necessitam fato de chamar um ConvertTo
método para convertê-lo para outro tipo.
bool
e Boolean
são os dois tipos de referência". As palavras bool
e Boolean
ambas se referem ao mesmo tipo, e esse tipo é um tipo de valor, não um tipo de referência.
bool é um alias para booleano. O que os apelidos fazem é substituir uma sequência de texto por outra (como pesquisar / substituir tudo no bloco de notas ++), pouco antes do código ser compilado. Usar um sobre o outro não tem efeito no tempo de execução.
Na maioria dos outros idiomas, um seria um tipo primitivo e o outro seria um tipo de objeto (tipo de valor e tipo de referência no jargão C #). O C # não oferece a opção de escolher entre os dois. Quando você deseja chamar um método estático definido na classe Boolean, ele trata automaticamente o Boolean como um tipo de referência. Se você criar uma nova variável booleana, ela a tratará automaticamente como um tipo de referência (a menos que você use o método Activator.CreateInstance).
Talvez bool seja um pouco "mais leve" que booleano; Curiosamente, alterando isso:
namespace DuckbillServerWebAPI.Models
{
public class Expense
{
. . .
public bool CanUseOnItems { get; set; }
}
}
...para isso:
namespace DuckbillServerWebAPI.Models
{
public class Expense
{
. . .
public Boolean CanUseOnItems { get; set; }
}
}
... fez meu arquivo cs gerar um "using System;" Alterar o tipo de volta para "bool" fez com que o cabelo da cláusula use ficasse cinza.
(Visual Studio 2010, projeto WebAPI)
System.Boolean
invés de apenas Boolean
. O using System;
estava aparecendo porque permitiu Boolean
a ser devidamente interpretada como System.Boolean
. Não é realmente mais leve, mas apenas menos detalhado.