I’ve got somebody’s F# library with a type in it:
module HisModule
type hisType {
a : float;
b : float;
c : float;
}
I’m using it in C#, and I would like to add a “ToString()” method to it, in order to facilitate debugging.
But the following doesn’t seem to work:
public static class MyExtensions
{
public static string ToString(this HisModule.hisType h)
{
return String.Format("a={0},b={1},c={2}", h.a, h.b, h.c);
}
}
....
var h = new hisType();
Console.WriteLine(h.ToString()); // prints "HisModule+hisType"
Any ideas why not?
The answer to your question is “yes”. Your sample does not succeed, however, because method resolution succeeds when it finds
object.ToString(), so the compiler never looks for extension methods. Try it with a different name: