我试图弄清楚如何将Func<T>
传递给Func<object>
方法参数:
public void Foo<T>(Func<T> p) where T: class
{
Foo(p);
}
public void Foo(Func<object> p)
{
}
奇怪的是,它在NET 4.0类库中可用,但在Silverlight 4类库中不可用。实际上,我希望它在Silverlight中工作,并且我有输入参数,例如Func<T, bool>
这将解决问题:
public void Foo<T>(Func<T> p) where T : class
{
Func<object> f = () => p();
Foo(f);
}
在面向.NET 4.0的C#4.0中(即,使用variance