![]() |
1
18
对于我的另一个回答,埃里克·史密斯正确地指出:
考虑到这一点,我找到了一个新的答案。试试这个尺寸:
结构上的普通“实例”方法在CIL级别采用“托管指针”(类型
类似地,类上的实例方法采用“对象引用”(类型
自CIL以来
但我们正在讨论的场景是废墟。一种静态扩展方法,采用
除非我缺少一个更基本的实现障碍(例如,我可以想象它会给验证器带来问题),否则似乎可以合理地扩展运行时来支持这种情况,但所有的迹象都表明这是运行时的限制,而不是C编译器本身的限制。 |
![]() |
2
2
编辑2 我不再相信这个答案了,但我把它留在这里,这样线程仍然有意义,这样人们就会明白为什么它是不正确的。关于这件事的不同看法,请看我的另一个答案。 原件 因为它需要隐式装箱值类型Receiver参数(因为包含Receiver参数的System.Delegate类型是System.Object类型),这可能会导致一些奇怪的别名行为(如果您不期望)。 编辑 这里还有别的事。我运行了这个示例程序:
在调用CreateDelegate时,得到一个ArgumentException:“错误绑定到目标方法”。我不知道为什么,因为相关的方法是
|
|
Henry Vonfire · 如何在Slick中实现值类型? 10 年前 |