В чем разница между bool
и Boolean
типов в C #?
В чем разница между bool
и Boolean
типов в C #?
Ответы:
bool
псевдоним для так System.Boolean
же, как int
псевдоним для System.Int32
. Смотрите полный список псевдонимов здесь: Таблица встроенных типов (C # Reference) .
boolean
и Boolean
это не одно и то же. Один является примитивным типом данных, а другой - объектом.
Разницы нет - bool - это просто псевдоним System.Boolean.
http://msdn.microsoft.com/en-us/library/c8f5xwh7(VS.71).aspx
Я понимаю, что это много лет спустя, но я наткнулся на эту страницу из Google с тем же вопросом.
На данный момент на странице MSDN есть одно небольшое отличие.
VS2005
Примечание:
Если вам требуется логическая переменная, которая также может иметь значение null, используйте bool. Для получения дополнительной информации см. Обнуляемые типы (Руководство по программированию в C #).
VS2010
Примечание:
Если вам требуется логическая переменная, которая также может иметь значение null, используйте bool ?. Для получения дополнительной информации см. Обнуляемые типы (Руководство по программированию в C #).
bool
может содержать ноль, но Boolean
не может. Хотя существует ссылка от старой к новой документации, я не прочитал новую документацию достаточно тщательно, чтобы заметить единственную ?
разницу.
Они одинаковые. Boolean помогает упростить преобразование между C # и VB.Net. Большинство программистов на C # предпочитают «bool», но если вы находитесь в магазине, где много и VB.Net, и C #, то вы можете предпочесть Boolean, потому что он работает в обоих местах.
bool - псевдоним для логического класса. Я использую псевдоним при объявлении переменной и имени класса при вызове метода в классе.
Они одинаковы, Bool просто System.Boolean сокращен. Используйте Boolean, когда вы работаете с программистом VB.net, так как он работает как с C #, так и с Vb
Обратите внимание, что это Boolean
будет работать только в том случае, если у вас есть using System;
(что обычно, но не обязательно, включено) (если вы не записали это как System.Boolean
). bool
не нужноusing System;
bool - это примитивный тип, означающий, что значение (в данном случае true / false) хранится непосредственно в переменной. Булево является объектом. Переменная типа Boolean хранит ссылку на логический объект. Единственная реальная разница - это хранение. Объект всегда будет занимать больше памяти, чем примитивный тип, но в действительности изменение всех ваших логических значений на bool не окажет заметного влияния на использование памяти.
Я ошибался; Вот как это работает в Java с Boolean и Boolean. В C # bool и Boolean являются ссылочными типами. Они оба хранят свои значения непосредственно в переменной, они не могут быть нулевыми, и им обоим требуется метод "convertTO" для хранения их значений в другом типе (например, int). То, какой из них вы используете, имеет значение только в том случае, если вам нужно вызвать статическую функцию, определенную в логическом классе.
bool
и Boolean
это не два разных типа, один тип не является ссылочным типом, вы можете вызывать статический метод для этого одного типа, используя любой идентификатор, и вам на самом деле не нужно вызывать ConvertTo
метод для преобразования его в другой тип.
bool
и Boolean
оба являются ссылочными типами". Слова bool
и Boolean
оба относятся к одному и тому же типу, и этот тип является типом значения, а не ссылочным типом.
bool - это псевдоним для логического выражения. Псевдонимы - это замена одной строки текста другой (например, search / replace-all в notepad ++) непосредственно перед компиляцией кода. Использование одного над другим не имеет никакого эффекта во время выполнения.
В большинстве других языков один будет примитивным типом, а другой - типом объекта (тип значения и ссылочный тип в жаргоне C #). C # не дает вам выбора между двумя. Когда вы хотите вызвать статический метод, определенный в логическом классе, он автоматически обрабатывает логический метод как ссылочный тип. Если вы создаете новую логическую переменную, она автоматически обрабатывает ее как ссылочный тип (если вы не используете метод Activator.CreateInstance).
Возможно, 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 файл прорасти "using System;" Смена типа обратно на «bool» привела к тому, что волосы оператора использования стали серыми.
(Visual Studio 2010, проект WebAPI)
System.Boolean
скорее, чем просто Boolean
. using System;
Показывал, потому что он позволил Boolean
быть правильно интерпретированы как System.Boolean
. На самом деле не так светло, как просто менее многословно.