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
有没有一种很好的方法可以让自己的类的对象直接在其基实例上接受函数式参数(参数)?有点像索引器,但用括号而不是方括号?