根据文档: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/

10-12 23:56