为什么在C#中使用指向通用类型的指针无效? int?*
无效,而typeof(int?).MakePointerType()
不会产生异常。
根据MSDN,指针可以是:
我看不到有关泛型的任何限制。 int?
看起来有效,因为它仅包含bool
和int
字段。
最佳答案
引用C#5.0规范§18.2指针类型
阻止您的关键部分是constructed type
限制。
从§1.6.3类型参数(强调我的)
您在其中指定类型参数的任何泛型类型都被视为构造类型,并且构造类型不允许出现在指针中。这就是为什么Nullable<int>
不允许的原因。
关于c# - 通用类型的指针,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30676126/