Domanda

Qual è la differenza tra i tipi bool e Boolean in C #?

È stato utile?

Soluzione

bool è un alias per System.Boolean proprio come int è un alias per System.Int32 . Visualizza un elenco completo di alias qui: Tabella dei tipi predefiniti (riferimento C #) .

Altri suggerimenti

Non credo ce ne sia uno.

bool è solo un alias per System.Boolean

Sono una cosa sola. bool è solo un alias per Boolean.

Non c'è alcuna differenza: bool è semplicemente un alias di System.Boolean.

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

Mi rendo conto che è successo molti anni dopo, ma mi sono imbattuto in questa pagina da Google con la stessa domanda.

Al momento esiste una differenza minore sulla pagina MSDN.

VS2005

  

Nota:

     

Se hai bisogno di una variabile booleana che può anche avere un valore null, usa bool.   Per ulteriori informazioni, consultare Tipi di nullità (Guida per programmatori C #).

VS2010

  

Nota:

     

Se hai bisogno di una variabile booleana che può anche avere un valore null, usa bool ?.   Per ulteriori informazioni, consultare Tipi di nullità (Guida per programmatori C #).

Sono uguali. Boolean aiuta a semplificare la conversione avanti e indietro tra C # e VB.Net. La maggior parte dei programmatori C # tende a preferire "bool", ma se ti trovi in ??un negozio in cui ci sono molti VB.Net e C #, potresti preferire Boolean perché funziona in entrambi i posti.

Uno è un alias per l'altro.

Come è stato detto, sono gli stessi. Ce ne sono due perché bool è una parola chiave C # e Boolean una classe .Net.

bool è un alias per la classe booleana. Uso l'alias quando dichiaro una variabile e il nome della classe quando chiamo un metodo sulla classe.

Sono uguali, Bool è solo System.Boolean abbreviato. Usa Boolean quando sei con un programmatore VB.net, poiché funziona con C # e Vb

Nota che Booleano funzionerà solo se avessi usando System; (che di solito, ma non necessariamente, è incluso) (a meno che tu non lo scriva come System.Boolean ). bool non necessita di utilizzando il sistema;

bool è un tipo primitivo, il che significa che il valore (vero / falso in questo caso) è memorizzato direttamente nella variabile. Boolean è un oggetto. Una variabile di tipo booleano memorizza un riferimento a un oggetto booleano. L'unica vera differenza è l'archiviazione. Un oggetto occuperà sempre più memoria di un tipo primitivo, ma in realtà, cambiare tutti i valori booleani in booleare non avrà alcun impatto evidente sull'uso della memoria.

Ho sbagliato; è così che funziona in java con booleano e booleano. In C #, bool e Boolean sono entrambi tipi di riferimento. Entrambi memorizzano il loro valore direttamente nella variabile, entrambi non possono essere nulli ed entrambi richiedono un "convertTO" " metodo per memorizzare i loro valori in un altro tipo (come int). Importa solo quale si utilizza se è necessario chiamare una funzione statica definita all'interno della classe booleana.

Forse bool è un po 'più leggero " di Boolean; È interessante notare che cambiando questo:

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

... a questo:

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

... ha provocato la fuoriuscita del mio file cs da " using System; " Modifica del tipo in " bool " ha fatto diventare grigi i capelli della clausola use.

(Visual Studio 2010, progetto WebAPI)

bool è un alias per Boolean. Quello che fanno gli alias è sostituire una stringa di testo con un'altra (come cerca / sostituisci tutto in notepad ++), appena prima che il codice venga compilato. L'uso l'uno sull'altro non ha alcun effetto in fase di esecuzione.

Nella maggior parte degli altri linguaggi, uno sarebbe un tipo primitivo e l'altro sarebbe un tipo di oggetto (tipo di valore e tipo di riferimento in gergo C #). C # non ti dà la possibilità di scegliere tra i due. Quando si desidera chiamare un metodo statico definito nella classe booleana, tratta automaticamente il booleano come tipo di riferimento. Se crei una nuova variabile booleana, la tratta automaticamente come un tipo di riferimento (a meno che tu non usi il metodo Activator.CreateInstance).

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top