【发布时间】:2011-01-03 08:59:12
【问题描述】:
第一部分:从 F# 调用 F#
假设我们在 F# 中定义了以下类型:
type MyClass =
static member Overload1 (x, y) = "Pim"
static member Overload1 (x : System.Tuple<_, _>) = "Pam"
static member Overload1 x = "Pum"
您现在在另一个模块中(在另一个文件中)。
如何调用上面显示的三个方法?
第二部分:从F#调用C#
现在,您在 C# 中定义一个类:
public class MyClass {
public static string Overload1<a, b>(a x, b y) { return "Pim"; }
public static string Overload1<a, b>(Tuple<a, b> x) { return "Pam"; }
public static string Overload1<a>(a x) { return "Pum"; }
}
从 F# 代码中,如何调用现在在 C# 中定义的三个方法?
【问题讨论】:
-
哦,谢谢你的编辑,布莱恩。我想我开始太习惯于输入推理了!
-
这里有趣的是,F# 和 C# 编译器都会为“Pam”方法生成相同的方法签名,但是您需要使用不同的(和骇人听闻的)语法来调用它们!跨度>
标签: c# interop f# methods call