Я новичок в С#. В С# я не могу установить значение структуры для null, как я могу создать структуру с поддержкой нулевого значения?
Как создать структуру с поддержкой нулевого значения?
Ответ 1
Структуры и типы значений могут быть обнулены с помощью класса Generic Nullable <>, чтобы обернуть его. Например:
Nullable<int> num1 = null;
С# предоставляет языковую функцию для этого, добавляя знак вопроса после типа:
int? num1 = null;
То же самое должно работать для любого типа значения, включая структуры.
MSDN Объяснение: Обнуляемые типы (С#)
Ответ 2
Вы можете использовать Nullable<T>
, который имеет псевдоним в С#. Имейте в виду, что сама структура не является действительно нулевой (компилятор трактует нуль по-разному за кулисами). Это больше Тип параметра.
Struct? value = null;
Поскольку @CodeInChaos упоминает Nullable<T>
, он помещается в поле только в том случае, если он находится в ненулевом состоянии.
Ответ 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 с помощью условных операторов.