为什么在C#中使用指向通用类型的指针无效? int?*无效,而typeof(int?).MakePointerType()不会产生异常。
根据MSDN,指针可以是:

我看不到有关泛型的任何限制。 int?看起来有效,因为它仅包含boolint字段。

最佳答案

引用C#5.0规范§18.2指针类型

阻止您的关键部分是constructed type限制。
从§1.6.3类型参数(强调我的)

您在其中指定类型参数的任何泛型类型都被视为构造类型,并且构造类型不允许出现在指针中。这就是为什么Nullable<int>不允许的原因。

关于c# - 通用类型的指针,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30676126/

10-11 22:57
查看更多