根据文档:http://msdn.microsoft.com/en-us/library/x13ttww7.aspx:
volatile关键字可以应用于引用类型。
那么,为什么在Nullable<T>
..引用类型上使用它是非法的!
请注意,我实际上不需要Nullable<T>
字段上的 volatile 语义,我偶然遇到此错误,并且只是感到好奇。
最佳答案
Nullable<T>
不是引用类型。这是一个值类型:
public struct Nullable<T>
where T : struct, new()
注意
struct
部分。仅仅因为它具有
null
值并不能使其成为引用类型,而是一个可为空的值类型。有关更多详细信息,请参见C#4语言规范的4.1.10节。关于C#易失且可为空,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8190514/