例如,我们有一个通用方法
public void Test<T>(T param, Action<T> callback)
{
}
如果使用某些参数调用此方法,它将自动检测T的类型,而无需显式声明它。
例如:
// here 'int' detected
Test(1, (intVariable) =>
{
});
// here 'string' detected
Test("hello", (stringVariable) =>
{
});
现在,是否有任何方法可以对方法进行相同处理。例如
Test(int.Parse, (parseMethod) =>
{
parseMethod("11");
});
是的,具有相同名称的方法可以具有不同的签名,并且无法检测到要使用哪个签名作为参数,但是可能有些接近。
答案 0 :(得分:0)
您必须显式转换为Func<string, int>
才能完成此工作:
Test((Func<string, int>)int.Parse, (parseMethod) =>
{
parseMethod("11");
});