繁体   English   中英

使用F#代码中的C#中定义的扩展方法

[英]Using extension methods defined in C# from F# code

我为C#库中的各种类定义了一系列扩展方法。 我正在编写一些F#代码,而不是重写代码,我只想在我的F#代码中使用现有的扩展方法。

我添加了对库的引用并使用open语句导入命名空间,但扩展方法没有出现在F#中

更新:

在当前版本的F#中,您可以通过添加来简单地使用扩展方法

open TheNamespaceOfExtensionMethod

到您的源文件(就像您在C#中使用using指令一样)并简单地调用扩展方法,就像它是一个普通的实例方法一样。

顺便说一句,您可以像普通的静态方法一样直接调用它们,并将对象引用作为第一个参数传递,如果需要,不带任何指令。 扩展方法只是一个在引擎盖下使用ExtensionAttribute修饰的静态方法。

原始答案(在F#2010测试版之前;不再是真实的,正如Dykam指出的那样):

我不认为F#支持扩展方法。 您可以像普通静态方法一样直接调用它们,并将对象引用作为第一个参数传递。

下一版本的F#将支持能够“导入”C#/ VB扩展方法。

也可以看看

C#中的F#扩展方法

有关该主题的更多详细信息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM