例如:
public class Stereo {
public Speaker? LeftSpeaker;
public int? Volume;
}
int?
工作正常,但我无法使扬声器可以为空。这对谷歌来说实在是太难了,我觉得这很简单......
答案 0 :(得分:13)
你为什么要这样?可以设置非值类型(即引用类型)并与null
进行比较。
在引用类型对象上添加Nullable<T>
包装器将创建两个层的可空性;无意义的复杂性,因此是不允许的。
答案 1 :(得分:2)
很简单。 “非值”类型实际上在.NET中称为引用类型,并且可以自动为空。只需改变您的代码:
public class Stereo {
public Speaker LeftSpeaker; // ? removed for ref type
public int? Volume;
}
答案 2 :(得分:0)
狂野赃物:
public class Stereo {
public Speaker LeftSpeaker;
public int? Volume;
public Stereo() {
LeftSpeaker = null; // Mission accomplished.
}
}
答案 3 :(得分:0)
很多鱼已经在这里 - 但是如果你想学习如何捕鱼,我建议你看一下Jon Skeet的书C# in Depth。第4.1至4.5章正在讨论C#中“无效概念”的所有方面。