Что такое тип с нулевым значением в С#? - программирование
Подтвердить что ты не робот

Что такое тип с нулевым значением в С#?

когда мы должны использовать тип nullable в С#.net? может кто-нибудь объяснить на примере.

4b9b3361

Ответ 1

Обнуляемые типы (когда использовать обнуляемые типы) - это типы значений, которые могут принимать значение 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 если переменная С# не имеет значения nullable - обычное целое число.

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

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

Ответ 2

Когда нам нужно использовать тип NULL в С#.net?

Представьте, что существует целая переменная id, которая представляет конкретный id.

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

int id=null;//error

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


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

Чтобы представить null в типе значения, вы должны использовать Nullable type..

Он обозначается как тип значения, за которым следует ?

int? id=null;

который транслируется на

Nullable<int> id=new Nullable<int>();

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

Ответ 3

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

BlogPost: Nullable type - Почему нам нужны нулевые типы в языке программирования?

Ответ 4

from: http://msdn.microsoft.com/en-us/library/1t3y8s4s(v=vs.80).aspx Необязательными типами являются экземпляры структуры System.Nullable. Тип с нулевым значением может представлять нормальный диапазон значений для его базового типа значений плюс дополнительное значение NULL. Например, Nullable <Int32 > , произносится как "Nullable of Int32", может быть присвоено любое значение от -2147483648 до 2147483647 или ему может быть присвоено нулевое значение. A 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);
        }
    }
}

Ответ 5

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

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

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

Чтобы прочитать дополнительную информацию об типах с нулевым значением, обратитесь к Нулевые типы в С# с примером.