sdg*_*sdh -1 c# clr extension-methods f#
我在C#中有一个扩展方法:
Foo(this Bar bar, int x)
{
// Do stuff
}
Run Code Online (Sandbox Code Playgroud)
我如何在F#中调用它?
bar.Foo(100); // Doesn't work
bar.Namespace.Foo(100); // Doesn't work
Run Code Online (Sandbox Code Playgroud)
如何在F#中的.NET列表中使用扩展方法Sum的答案?需要打开模块.我可以不使用扩展方法open吗?
这个问题在F#和C#中是一样的.要使用扩展方法,您可以打开命名空间(F#)或使用命名空间的using语句(C#),或者如果由于某种原因您不能或不想打开命名空间,则可以完全限定方法.
在两种语言中,System.Linq命名空间都打开:
myArray.Sum()
Run Code Online (Sandbox Code Playgroud)
在两种语言中,没有System.Linq打开名称空间:
System.Linq.Enumerable.Sum(myArray)
Run Code Online (Sandbox Code Playgroud)