具有泛型约束的F#成员重载

Cam*_*art 0 f#

是否可以使用泛型约束来执行成员重载?在这里,我试图创建和AddWithOption方法来支持值类型和引用类型.如果你看一下要点,我会展示几次尝试来实现这一目标.

在此输入图像描述

我的解决方法只是不要重载成员.我将一个值重命名为AddWithOptionValue.但是,如果超载工作会很酷.有任何想法吗?

des*_*sco 8

约束不是方法签名的一部分(根据ECMA 335,I.8.6.1.5方法签名),这意味着在CIL中,您不能有两种签名仅在约束条件上有所不同的方法.为了在CIL中编码这样的签名,需要使用可选或必需的修饰符,但这不是很简单,今天F#不这样做.

  • 谢谢!说得通.我阅读了更多关于[为什么不是类型约束方法签名的一部分?](http://stackoverflow.com/questions/9440888/why-arent-type-constraints-part-of-the-method-signature)和它有所帮助. (3认同)