В чем разница между типами bool и Boolean в С#

В чем разница между типами bool и Boolean в С#?

+277
25 сент. '08 в 17:35
источник поделиться
15 ответов

bool является псевдонимом для System.Boolean, так как int является псевдонимом для System.Int32. См. Полный список псевдонимов здесь: Таблица встроенных типов (ссылка на С#).

+320
25 сент. '08 в 17:39
источник

Я не верю, что есть один.

bool является просто псевдонимом для System.Boolean

+41
25 сент. '08 в 17:37
источник

Они одни в одном. bool является просто псевдонимом для булевых.

+22
25 сент. '08 в 17:37
источник

Нет никакой разницы - bool - просто псевдоним System.Boolean.

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

+17
25 сент. '08 в 17:43
источник

Я понимаю, что это произошло много лет спустя, но я наткнулся на эту страницу из Google с тем же вопросом.

На странице MSDN существует незначительное различие.

VS2005

Примечание:

Если вам нужна логическая переменная, которая также может иметь значение null, используйте bool. Для получения дополнительной информации см. Nullable Types (Руководство по программированию на С#).

VS2010

Примечание:

Если вам нужна логическая переменная, которая также может иметь значение null, используйте bool?. Для получения дополнительной информации см. Nullable Types (Руководство по программированию на С#).

+13
26 сент. '12 в 23:43
источник

Они одинаковы. Boolean помогает упростить конвертацию между С# и VB.Net. Большинство программистов на С# предпочитают "bool", но если вы находитесь в магазине, где есть много VB.Net и С#, тогда вы можете предпочесть логическое значение, потому что оно работает в обоих местах.

+13
25 сент. '08 в 17:40
источник

Один из них является псевдонимом для другого.

+9
25 сент. '08 в 17:37
источник

Как уже было сказано, они одинаковы. Есть два, потому что bool - это ключевое слово С# и Boolean.Net class.

+8
25 сент. '08 в 17:40
источник

bool является псевдонимом для булева класса. Я использую псевдоним при объявлении переменной и имени класса при вызове метода в классе.

+5
25 сент. '08 в 17:40
источник

Они те же, Bool просто System.Boolean сокращен. Используйте Boolean, когда вы работаете с программистом VB.net, поскольку он работает как с С#, так и с Vb

+2
20 авг. '14 в 10:36
источник

bool - это примитивный тип, означающий, что значение (true/false в этом случае) сохраняется непосредственно в переменной. Boolean - это объект. Переменная типа Boolean сохраняет ссылку на объект Boolean. Единственное реальное различие - хранение. Объект всегда будет занимать больше памяти, чем примитивный тип, но на самом деле изменение всех ваших логических значений в bool не окажет заметного влияния на использование памяти.

Я был неправ; что он работает в java с булевым и булевым. В С#, bool и Boolean являются ссылочными типами. Оба они сохраняют свое значение непосредственно в переменной, оба из них не могут быть нулевыми, и для обоих из них требуется метод convertTO для хранения своих значений в другом типе (например, int). Это имеет значение только для того, что вы используете, если вам нужно вызвать статическую функцию, определенную в классе Boolean.

+1
05 авг. '16 в 16:51
источник

Обратите внимание, что Boolean будет работать только если у вас есть using System; (который обычно, но необязательно включен) (если вы не напишете его как System.Boolean). bool не требуется using System;

+1
04 авг. '14 в 15:23
источник

Возможно, bool является чуть-чуть "легче", чем Boolean; Интересно, изменив это:

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

... к этому:

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

... заставило мой файл cs прорасти "использование системы"; Изменение типа обратно на "bool" привело к тому, что волосы, использующие предложение, стали серыми.

(проект Visual Studio 2010, WebAPI)

-1
08 окт. '13 в 19:04
источник

"Boolean" - это структура, содержащая методы (например, Equals (Boolean) и FalseString()). "bool" - это тип данных, который содержит только 0 или 1.

(см.: http://msdn.microsoft.com/query/dev10.query?appId=Dev10IDEF1&l=EN-US&k=k(SYSTEM.BOOLEAN);k(BOOLEAN);k(TargetFrameworkMoniker-%22.NETFRAMEWORK%2cVERSION%3dV4.0%22);k(DevLang-CSHARP)&rd=true)

-1
27 сент. '13 в 16:24
источник

bool является псевдонимом для булевых. Какие алиасы заменяют одну строку текста на другую (например, search/replace-all в блокноте ++), перед компиляцией кода. Использование одного над другим не влияет на время выполнения.

В большинстве других языков один будет примитивным типом, а другой будет типом объекта (тип значения и ссылочный тип в жаргоне С#). С# не дает вам выбора между ними. Когда вы хотите вызвать статический метод, определенный в булевом классе, он автоматически задает логический тип Boolean как ссылочный тип. Если вы создаете новую Boolean-переменную, она автоматически магически рассматривает ее как ссылочный тип (если вы не используете метод Activator.CreateInstance).

-1
05 авг. '16 в 20:07
источник

Посмотрите другие вопросы по меткам или Задайте вопрос