Вопрос

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

Это было полезно?

Решение

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

Другие советы

Я не верю, что он существует.

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

Они одно и то же.bool — это просто псевдоним для Boolean.

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

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

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

На данный момент на странице MSDN есть одно незначительное отличие.

ВС2005

Примечание:

Если вам требуется логическая переменная, которая также может иметь значение null, используйте bool.Дополнительные сведения см. в разделе Типы, допускающие значение NULL (Руководство по программированию на C#).

ВС2010

Примечание:

Если вам требуется логическая переменная, которая также может иметь значение null, используйте bool?.Дополнительные сведения см. в разделе Типы, допускающие значение NULL (Руководство по программированию на C#).

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

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

Как уже было сказано, они одинаковы.Их два, потому что bool — это ключевое слово C#, а Boolean — класс .Net.

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

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

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

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

Я был неправ;вот как это работает в Java с логическими значениями и логическими значениями.В C# bool и Boolean являются ссылочными типами.Оба они сохраняют свое значение непосредственно в переменной, оба не могут быть нулевыми, и оба требуют метода «convertTO» для сохранения своих значений в другом типе (например, int).Какой из них вы используете, имеет значение только в том случае, если вам нужно вызвать статическую функцию, определенную в классе 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 прорастать "с помощью системы"; Изменение типа на «Bool» привели к тому, что волосы использования пункта стали серыми.

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

bool — это псевдоним логического значения.Псевдонимы заменяют одну строку текста другой (например, search/replace-all в notepad++) непосредственно перед компиляцией кода.Использование одного над другим не имеет никакого эффекта во время выполнения.

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top