В чем разница между типами bool
и Boolean
в С#?
В чем разница между типами bool и Boolean в С#
Ответ 1
bool
является псевдонимом для System.Boolean
, так как int
является псевдонимом для System.Int32
. См. Полный список псевдонимов здесь: Таблица встроенных типов (ссылка на С#).
Ответ 2
Я не верю, что есть один.
bool
является просто псевдонимом для System.Boolean
Ответ 3
Они одни в одном. bool является просто псевдонимом для булевых.
Ответ 4
Нет никакой разницы - bool - просто псевдоним System.Boolean.
http://msdn.microsoft.com/en-us/library/c8f5xwh7(VS.71).aspx
Ответ 5
Они одинаковы. Boolean помогает упростить конвертацию между С# и VB.Net. Большинство программистов на С# предпочитают "bool", но если вы находитесь в магазине, где есть много VB.Net и С#, тогда вы можете предпочесть логическое значение, потому что оно работает в обоих местах.
Ответ 6
Я понимаю, что это произошло много лет спустя, но я наткнулся на эту страницу из Google с тем же вопросом.
На странице MSDN существует незначительное различие.
VS2005
Примечание:
Если вам нужна логическая переменная, которая также может иметь значение null, используйте bool. Для получения дополнительной информации см. Nullable Types (Руководство по программированию на С#).
VS2010
Примечание:
Если вам нужна логическая переменная, которая также может иметь значение null, используйте bool?. Для получения дополнительной информации см. Nullable Types (Руководство по программированию на С#).
Ответ 7
Один из них является псевдонимом для другого.
Ответ 8
Как уже было сказано, они одинаковы. Есть два, потому что bool - это ключевое слово С# и Boolean.Net class.
Ответ 9
bool является псевдонимом для булева класса. Я использую псевдоним при объявлении переменной и имени класса при вызове метода в классе.
Ответ 10
Они те же, Bool просто System.Boolean сокращен. Используйте Boolean, когда вы работаете с программистом VB.net, поскольку он работает как с С#, так и с Vb
Ответ 11
Обратите внимание, что Boolean
будет работать только если у вас есть using System;
(который обычно, но необязательно включен) (если вы не напишете его как System.Boolean
). bool
не требуется using System;
Ответ 12
bool - это примитивный тип, означающий, что значение (true/false в этом случае) сохраняется непосредственно в переменной. Boolean - это объект. Переменная типа Boolean сохраняет ссылку на объект Boolean. Единственное реальное различие - хранение. Объект всегда будет занимать больше памяти, чем примитивный тип, но на самом деле изменение всех ваших логических значений в bool не окажет заметного влияния на использование памяти.
Я был неправ; что он работает в java с булевым и булевым. В С#, bool и Boolean являются ссылочными типами. Оба они сохраняют свое значение непосредственно в переменной, оба из них не могут быть нулевыми, и для обоих из них требуется метод convertTO для хранения своих значений в другом типе (например, int). Это имеет значение только для того, что вы используете, если вам нужно вызвать статическую функцию, определенную в классе Boolean.
Ответ 13
"Boolean" - это структура, содержащая методы (например, Equals (Boolean) и FalseString()). "bool" - это тип данных, который содержит только 0 или 1.
Ответ 14
Возможно, 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)
Ответ 15
bool является псевдонимом для булевых. Какие алиасы заменяют одну строку текста на другую (например, search/replace-all в блокноте ++), перед компиляцией кода. Использование одного над другим не влияет на время выполнения.
В большинстве других языков один будет примитивным типом, а другой будет типом объекта (тип значения и ссылочный тип в жаргоне С#). С# не дает вам выбора между ними. Когда вы хотите вызвать статический метод, определенный в булевом классе, он автоматически задает логический тип Boolean как ссылочный тип. Если вы создаете новую Boolean-переменную, она автоматически магически рассматривает ее как ссылочный тип (если вы не используете метод Activator.CreateInstance).