




Я не верю, что он есть.
bool - это просто псевдоним для System.Boolean
Они одно в одном. bool - это просто псевдоним Boolean.
Одно является псевдонимом для другого.
bool - это псевдоним для System.Boolean, так же как int - это псевдоним для System.Int32. Смотрите полный список псевдонимов здесь: Таблица встроенных типов (Справочник по C#).
@asim: лень? Он меньше печатает и избавляет от необходимости импортировать System. Лично я предпочитаю псевдонимы. Ввод «int» намного быстрее, чем «Int32».
@asmin: Это вещь C. int, float и т. д. - ключевые слова, знакомые программистам на C и C++, поэтому Microsoft решила использовать эти псевдонимы для единообразия.
@Mikey Я почти уверен, что Java решила использовать эти псевдонимы для согласованности, а Microsoft решила использовать Java для согласованности ... :-)
@MaxWell В Java boolean и Boolean - это не одно и то же. Один - это примитивный тип данных, а другой - объект.
да, я знаю, я просто пошутил.
Этот псевдоним вызвал у меня проблему. Я использую bool, потому что думал, что это «правильный» тип, но потом я запутался, почему мой «bool» MVC DisplayTemplate не срабатывает. Оказывается, мне нужно назвать его логическим. Если бы я понял, что Boolean был официальным типом, а bool был просто псевдонимом для удобства, я бы использовал Boolean с самого начала.
В чем разница между Bool и bool?
Недурно, потому что это не дает ответа на вопрос, в чем разница.
Они одинаковые. Boolean помогает упростить преобразование между C# и VB.Net. Большинство программистов на C# предпочитают bool, но если вы находитесь в магазине, где много как VB.Net, так и C#, вы можете предпочесть Boolean, потому что он работает в обоих местах.
Как уже было сказано, они такие же. Их два, потому что bool - это ключевое слово C#, а Boolean - класс .Net.
Так не лучше ли bool для кроссплатформенной совместимости?
bool - это псевдоним логического класса. Я использую псевдоним при объявлении переменной и имя класса при вызове метода класса.
Ради интереса - зачем использовать оба? Я рекомендую использовать одно или другое. Либо используйте псевдонимы, либо не используйте, иначе код будет выглядеть беспорядочно и непоследовательно.
Я думаю, что это выглядит беспорядочно, когда вы не используете оба. Используйте псевдоним для объявления типа данных и имя класса actall при доступе к статическим методам: string x = String.Format («Сегодня: {0}», DateTime.Now);
Итак, вы бы сделали: int i = Int32.Parse (...); ? У меня с этим есть пара проблем. Во-первых, VS по умолчанию будет выделять по-другому (я знаю, что вы можете это изменить, но большинство разработчиков просто используют подсветку синтаксиса по умолчанию). Во-вторых, поиск сложнее, особенно с длинными (long / Int64).
Да, именно так это и должно быть сделано. int - это не имя класса, вы не должны вызывать для него методы. С другой стороны, это встроенный тип, определяющий Int32 i; слишком многословен и неестественен.
смешение псевдонимов и имен классов ничего не добавляет к ясности кода. Выберите один и придерживайтесь его, имхо
Я согласился с комментарием Кента Бугарта. Да, int i = Int32.Parse странно. Но для пользователя java использование псевдонима bool и boolean при объявлении класса Boolean - неплохая идея.
Нет никакой разницы - bool - это просто псевдоним System.Boolean.
http://msdn.microsoft.com/en-us/library/c8f5xwh7(VS.71).aspx
Я понимаю, что это произошло много лет спустя, но наткнулся на эту страницу в Google с тем же вопросом.
На данный момент есть одно небольшое отличие на странице MSDN.
VS2005
Note:
If you require a Boolean variable that can also have a value of null, use bool. For more information, see Nullable Types (C# Programming Guide).
VS2010
Note:
If you require a Boolean variable that can also have a value of null, use bool?. For more information, see Nullable Types (C# Programming Guide).
Меня это сбило с толку - похоже, это ошибка в документации. Сначала я увидел страницу VS2005 (она кажется мне выше в рейтинге Google!) И подумал, что это подразумевает, что bool может содержать null, а Boolean - нет. Несмотря на то, что есть ссылка на более старую документацию, я недостаточно внимательно прочитал новую документацию, чтобы заметить единственное отличие ?.
@ Тимоти Махария Кто / что не так? Что означает «преобразовать в нуль»?
Возможно, 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" волосы в предложении using поседели.
(Visual Studio 2010, проект WebAPI)
Это System.Boolean, а не просто Boolean. using System; появился, потому что он позволял правильно интерпретировать Boolean как System.Boolean. Не столько легче, сколько менее многословно.
Обратите внимание, что Boolean будет работать, только если у вас есть using System; (который обычно, но не обязательно, входит в комплект) (если вы не запишите его как System.Boolean). bool не требует using System;
Они такие же, Bool - это просто сокращенный System.Boolean. Используйте логическое значение, когда вы работаете с программистом VB.net, поскольку он работает как с C#, так и с Vb
bool - это примитивный тип, означающий, что значение (в данном случае true / false) сохраняется непосредственно в переменной. Boolean - это объект. Переменная типа Boolean хранит ссылку на логический объект. Единственная реальная разница - это хранилище. Объект всегда будет занимать больше памяти, чем примитивный тип, но на самом деле изменение всех ваших логических значений на bool не окажет заметного влияния на использование памяти.
Я был неправ; вот как это работает в java с логическими и логическими значениями. В C# логические и логические типы являются ссылочными типами. Оба они хранят свое значение непосредственно в переменной, оба не могут быть нулевыми, и им обоим требуется метод convertTO для хранения своих значений в другом типе (например, int). Имеет значение только то, какой из них вы используете, если вам нужно вызвать статическую функцию, определенную в логическом классе.
bool и Boolean - это не два разных типа, один тип не является ссылочным типом, вы можете вызвать статический метод для этого типа один, используя любой из идентификаторов, и вам фактически не нужно вызывать метод ConvertTo для его преобразования в другой. тип.
Неправильно, что «bool и Boolean являются ссылочными типами». Слова bool и Boolean относятся к одному и тому же типу, и этот тип является типом значения, а не ссылочным типом.
Спасибо, я пытался проверить, действует ли C# так же, как java в этом поле. Ваш ответ - единственный, который сравнивает его с java (хотя, может быть, и не намеренно). :)
bool - это псевдоним Boolean. Псевдонимы заменяют одну строку текста другой (например, search / replace-all в notepad ++) непосредственно перед компиляцией кода. Использование одного над другим не имеет никакого эффекта во время выполнения.
В большинстве других языков один будет примитивным типом, а другой - типом объекта (тип значения и ссылочный тип на жаргоне C#). C# не дает вам выбора между ними. Когда вы хотите вызвать статический метод, определенный в классе Boolean, он автоматически обрабатывает Boolean как ссылочный тип. Если вы создаете новую логическую переменную, она автоматически обрабатывает ее как ссылочный тип (если вы не используете метод Activator.CreateInstance).
Boolean - это тип значения, а не ссылочный тип.
Никакой реальной разницы, если вы не получите строку типа. Там, когда вы используете отражение или GetType (), вы получаете {Name = "Boolean" FullName = "System.Boolean"} для обоих.
Из приведенной выше ссылки Microsoft говорит, что ключевые слова типа C# и их псевдонимы взаимозаменяемы Но зачем нам нужны псевдонимы, с моей точки зрения Boolean более значим, чем bool, а Int32 более значим, чем int, тогда почему псевдонимы ???