Pergunta

Qual é a diferença entre os tipos de bool e Boolean em C #?

Foi útil?

Solução

bool é um alias para System.Boolean tão int é um alias para System.Int32. Veja uma lista completa dos aliases aqui: tipos built-in Table (C # Referência) .

Outras dicas

Eu não acredito que há um.

bool é apenas um alias para System.Boolean

Eles são um na mesma. bool é apenas um alias para booleana.

Não há nenhuma diferença - bool é simplesmente um alias de System.Boolean

.

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

Sei que este é muitos anos mais tarde, mas me deparei com esta página do Google com a mesma pergunta.

Há uma pequena diferença na página MSDN a partir de agora.

VS2005

Nota:

Se você precisar de uma variável booleana que também pode ter um valor de null, uso bool. Para mais informações, consulte Tipos anuláveis ??(C # guia de programação).

VS2010

Nota:

Se você precisar de uma variável booleana que também pode ter um valor de null, uso bool ?. Para mais informações, consulte Tipos anuláveis ??(C # guia de programação).

Eles são os mesmos. Booleano ajuda a simplificar volta de conversão e para a frente entre C # e VB.Net. A maioria dos programadores C # tendem a preferir 'bool', mas se você estiver em uma loja onde há um monte de ambos VB.Net e C #, então você pode preferir booleana porque ele funciona em ambos os lugares.

Um é um alias para o outro.

Como já foi dito, eles são os mesmos. Há dois porque bool é um C # palavra-chave e booleana uma classe .Net.

bool é um alias para a classe booleana. Eu uso o alias quando 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 encurtado. Use booleana quando você está com um programador VB.net, uma vez que funciona tanto com C # e VB

Note que Boolean só irá funcionar onde você tem using System; (que é normalmente, mas não necessariamente, incluído) (a menos que você escrevê-lo como System.Boolean). bool não precisa using System;

bool é um tipo primitivo, o que significa que o valor (true / false, neste caso) é armazenado diretamente na variável. Booleana é um objecto. A variável de tipo booleano armazena uma referência a um objecto booleano. A única diferença real é o armazenamento. Um objeto será sempre ocupam mais memória do que um tipo primitivo, mas na realidade, mudando todos os seus valores booleanos para bool não vai ter qualquer impacto perceptível no uso de memória.

Eu estava errado; é assim que funciona em java com boolean e booleano. Em C #, boleano e booleana são ambos os tipos de referência. Ambos armazenar o seu valor directamente na variável, ambos não pode ser nulo, e ambos requerem um método "convertto" para armazenar os valores de outro tipo (tal como int). Importa somente qual deles você usar se você precisa chamar uma função estática definida dentro da classe booleana.

Talvez bool é um pouco mais "leve" do que Boolean; Curiosamente, alterar isto:

namespace DuckbillServerWebAPI.Models
{
    public class Expense
    {
        . . .
        public bool CanUseOnItems { get; set; }
    }
}

... a isto:

namespace DuckbillServerWebAPI.Models
{
    public class Expense
    {
        . . .
        public Boolean CanUseOnItems { get; set; }
    }
}

... causada meu arquivo cs a brotar um "usando System;" Alterar o tipo de volta para "bool" causou o cabelo usando da cláusula para virar cinza.

(Visual Studio 2010, o projeto WebAPI)

bool é um alias para booleana. O que aliases fazer é substituir uma sequência de texto com outra (como pesquisa / substitua-tudo em bloco de notas ++), pouco antes de o código é compilado. Usando um sobre o outro não tem efeito em tempo de execução.

Na maioria dos outros idiomas, seria um tipo primitivo e o outro seria um tipo de objecto (tipo de valor e tipo de referência em C # gíria). faz C # não dar-lhe a opção de escolher entre os dois. Quando você quiser chamar um método estático definido na classe booleana, é auto-magicamente trata booleano como um tipo de referência. Se você criar uma nova variável booleana, ele trata como um tipo de referência (a menos que você use o método Activator.CreateInstance). Auto-magicamente

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top