Как создать структуру с поддержкой нулевого значения?

Я новичок в С#. В С# я не могу установить значение структуры для null, как я могу создать структуру с поддержкой нулевого значения?

Ответ 1

Структуры и типы значений могут быть обнулены с помощью класса Generic Nullable <>, чтобы обернуть его. Например:

Nullable<int> num1 = null;

С# предоставляет языковую функцию для этого, добавляя знак вопроса после типа:

int? num1 = null;

То же самое должно работать для любого типа значения, включая структуры.

MSDN Объяснение: Обнуляемые типы (С#)

Ответ 2

Вы можете использовать Nullable<T>, который имеет псевдоним в С#. Имейте в виду, что сама структура не является действительно нулевой (компилятор трактует нуль по-разному за кулисами). Это больше Тип параметра.

Struct? value = null;

Поскольку @CodeInChaos упоминает Nullable<T>, он помещается в поле только в том случае, если он находится в ненулевом состоянии.

Nullable Types

Бокс Nullable Types

Ответ 3

вы можете использовать Nullable<T> для структур или сокращенную форму (?) того же:

Представляет объект, type - тип значения, который также может быть присвоенный null как ссылочный тип.

struct Foo
{
}

Nullable<Foo> foo2 = null; 
Foo? foo = null; //equivalent shorthand form

Ответ 4

Так как "Struct" не является ссылочным типом, вы не можете назначить "null" как обычно. поэтому вам нужно использовать следующую форму, чтобы сделать ее "нулевой"

[Имя структуры]? [Имя переменной] = null

например.

Color? color = null;

то вы можете назначить значение null для объекта, а также проверить значение nullability с помощью условных операторов.