Например:
public class Stereo { public Speaker? LeftSpeaker; public int? Volume; }
int? работает нормально, но я не могу сделать динамик обнуляемым.Это оказалось удивительно сложно для Google, я думал, что это будет просто ...
int?
Зачем тебе это?Типы без значений (то есть ссылочные типы) уже могут быть установлены и сравниваться с null.
null
Добавление оболочки Nullable<T> к объектам ссылочного типа создаст два слоя обнуляемости;бессмысленная сложность, следовательно, это не допускается.
Nullable<T>
Это просто.«не значащие» типы на самом деле называются ссылочными типами в .NET и автоматически обнуляются.Просто измените свой код таким образом:
public class Stereo { public Speaker LeftSpeaker; // ? removed for ref type public int? Volume; }
Много рыбы уже здесь - но если вы хотите научиться ловить рыбу, я предлагаю заглянуть в книгу Джона Скита C # in Depth . Главы с 4.1 по 4.5 имеют дело со всеми аспектами «концепции ничтожности» в C #.
Дикая добыча:
public class Stereo { public Speaker LeftSpeaker; public int? Volume; public Stereo() { LeftSpeaker = null; // Mission accomplished. } }