Qual é a diferença entre bool
e Boolean
tipos em C #?
338
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
eBoolean
não é a mesma coisa. Um é um tipo de dados primitivo e o outro é um objeto.Não acredito que exista.
bool
é apenas um apelido paraSystem.Boolean
fonte
Eles são um no mesmo. bool é apenas um apelido para booleano.
fonte
Não há diferença - bool é simplesmente um apelido de System.Boolean.
http://msdn.microsoft.com/en-us/library/c8f5xwh7(VS.71).aspx
fonte
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
VS2010
fonte
bool
poderia conter nulo, masBoolean
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.
fonte
Como já foi dito, eles são os mesmos. Existem dois porque bool é uma palavra-chave C # e booleana uma classe .Net.
fonte
Um é um alias para o outro.
fonte
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.
fonte
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
fonte
Observe que
Boolean
só funcionará se você tiverusing System;
(o que geralmente é, mas não necessariamente, incluído) (a menos que você o escreva comoSystem.Boolean
).bool
não precisausing System;
fonte
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.
fonte
bool
eBoolean
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 umConvertTo
método para convertê-lo para outro tipo.bool
eBoolean
são os dois tipos de referência". As palavrasbool
eBoolean
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).
fonte
Talvez bool seja um pouco "mais leve" que booleano; Curiosamente, alterando isso:
...para isso:
... 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)
fonte
System.Boolean
invés de apenasBoolean
. Ousing System;
estava aparecendo porque permitiuBoolean
a ser devidamente interpretada comoSystem.Boolean
. Não é realmente mais leve, mas apenas menos detalhado.