C# では、デリゲート型への暗黙的なキャストを定義できます。
class myclass
{
public static implicit operator Func<String, int>(myclass x)
{
return s => 5;
}
public static implicit operator myclass(Func<String, int> f)
{
return new myclass();
}
}
しかし残念ながら、これを使ってオブジェクトを関数のように見せることはできません:
var xx = new myclass();
int j = xx("foo"); // error
Action<Func<String, int>> foo = arg => { };
foo(xx); // ok
独自のクラスのオブジェクトが関数スタイルのパラメーター (引数) をその基本インスタンスで直接受け入れるようにする良い方法はありますか? インデクサーのようなものですが、角括弧の代わりに括弧が使用されていますか?