如何在不打开的情况下从 F# 调用 C# 扩展方法?

How do I call a C# extension method from F#, without open?

我在 C# 中有一个扩展方法:

Foo(this Bar bar, int x)
{
    // Do stuff
}

如何在 F# 中调用它?

bar.Foo(100); // Doesn't work
bar.Namespace.Foo(100); // Doesn't work

回答How do I use the extension method Sum on a .NET list in F#?需要打开模块。我可以在没有 open 的情况下访问扩展方法吗?

这个问题在 F# 和 C# 中是一样的。要使用扩展方法,您可以打开命名空间 (F#) 或使用命名空间的 using 语句 (C#),或者如果由于某种原因您不能或不想打开命名空间,则完全限定该方法.

在两种语言中,打开 System.Linq 命名空间:

myArray.Sum()

在两种语言中,不打开 System.Linq 命名空间:

System.Linq.Enumerable.Sum(myArray)