Что такое обнуляемый тип в C #?

когда мы должны использоватьобнуляемым введите C # .net? Можно ли объяснить, пожалуйста, с примером.

 Sirwan Afifi05 нояб. 2012 г., 19:26

Ответы на вопрос(5)

от:http://msdn.microsoft.com/en-us/library/1t3y8s4s(v=vs.80).aspx Обнуляемые типы являются экземплярами структуры System.Nullable. Обнуляемый тип может представлять нормальный диапазон значений для его базового типа значения, а также дополнительное нулевое значение. Например, Nullable <Int32>произносится "Обнуляемый из Int32, " может быть присвоено любое значение от -2147483648 до 2147483647, или ему может быть присвоено нулевое значение. Nullable <BOOL> могут быть назначены значения true или false, или null

class NullableExample
{
    static void Main()
    {
        int? num = null;
        if (num.HasValue == true)
        {
            System.Console.WriteLine("num = " + num.Value);
        }
        else
        {
            System.Console.WriteLine("num = Null");
        }

        //y is set to zero
        int y = num.GetValueOrDefault();

        // num.Value throws an InvalidOperationException if num.HasValue is false
        try
        {
            y = num.Value;
        }
        catch (System.InvalidOperationException e)
        {
            System.Console.WriteLine(e.Message);
        }
    }
}

Обнуляемый тип - это новая концепция, введенная в C # 2.0, которая позволяет пользователю присвоить нулевое значение примитивным типам данных языка C #. Важно, чтобы здесь не Nullable тип был структурным типом.

Сообщение блога :Обнуляемый тип - Зачем нам нужны обнуляемые типы в языке программирования?

 James Michael Hare05 нояб. 2012 г., 19:35
Слегка неточно, яскажуNullable тип обёртки, который допускает нулевое значение (или "необязательный") семантика для типов значений. Это'не только для приматов, но и для присвоенияnull к обнуляемому типу действительно синтаксический сахар.null Nullable не совсемnull в эталонном смысле.
 ragingasiancoder30 июн. 2016 г., 17:22
Пожалуйста, исправьте свою грамматику в Blogspot, прежде чем связывать ее с SO. Если никто не может понять ваше объяснение из-за плохой грамматики, чтоСмысл?

Обнуляемые типы(Когда использовать обнуляемые типы) являются типами значений, которые могут принимать значение NULL. По умолчанию этоnull Это означает, что вы не присвоили ему значение. Примеры типов значений: int, float, double, DateTime и т. Д. Эти типы имеют следующие значения по умолчанию

int x = 0;
DateTime d = DateTime.MinValue;
float y = 0;

Для Nullable альтернатив, значение по умолчанию любого из вышеперечисленных равно нулю

int? x = null; //no value
DateTime? d = null; //no value

Это заставляет их вести себя как ссылочные типы, например объект, строка

string s = null;
object o = null;

Они очень полезны при работе со значениями из базы данных, когда значения, возвращаемые из вашей таблицы,NULL, Представьте целочисленное значение в таблице базы данных, которое может быть NULL, такое может быть представлено только с0 если переменная c # не имеет значения nullable - обычное целое число.

Кроме того, представьтеEndDate столбец, значение которого не определено до фактического времени в будущем. Это может быть установлено в NULL в БД, но выВам понадобится обнуляемый тип для хранения этого в C #

DateTime StartDate = DateTime.Today;
DateTime EndDate? = null; //we don't know yet

Когда мы должны использовать обнуляемый тип в C # .net?

Представьте, что есть целочисленная переменнаяid это представляет собой конкретное.id

Вы можете хранить,144или что-то еще. Но что, если вы нене знаю идентификатор. Вы не можете просто хранить-1 или же0. Вы можете подумать, чтобы назначитьnull но обычноnull нельзя присвоить типам значений.

int id=null;//error

Nullable type позволить вам сделать это.

Типы значений, такие какint,double,char.. не могу быть представленным какNULL значение.

Представлятьnull в типе значения вы должны использоватьnullable type..

Это обозначается как тип значения, сопровождаемый?

int? id=null;

который переводится в

Nullable id=new Nullable();

Значением по умолчанию для этого типа является nullable.null

Предположим, что у вас есть требование захватить клиента.s Дата рождения, которая не является обязательной для заполнения. Вы можете объявить свойство DateOfBirth как тип System.DateTime в классе Customer. Поскольку DateTime является типом значения, он не может принимать значения NULL, поэтому он будет иметь некоторое значение по умолчанию.

Поэтому, когда клиент неЕсли в элементе управления «Дата рождения» не указано явное значение, перед сохранением его в БД потребуется выполнить некоторую логику, чтобы значение по умолчанию считалось равным NULL. В БД вы можете сохранить NULL в полях DateTime.

Чтобы избежать этих нежелательных шагов для интерпретации значений в пользовательском интерфейсе и на уровне DA, вы можете использовать типы Nullable в C #, что сделает код более читабельным.

Чтобы узнать больше о типах, допускающих обнуляемость, обратитесь кОбнуляемые типы в C # с примером.

Ваш ответ на вопрос