第一部分:从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#中现在定义的三种方法中的每一种?
2 回答
这是F#部分的答案:
嗯,我不清楚是否可以调用F#“Pam”方法 . 但剩下的就是这里 .
C#:
F#:
当然,在实践中,很少看到IL中的方法将
System.Tuple<...>
对象作为参数 .