区分重载的通用和非通用方法

时间:2013-07-08 07:21:37

标签: c# generics overloading

这必须在某处覆盖,但我很难表达我的搜索条件,所以......

以下是由相同类型声明的三个实例方法。

void Invoke(int timeout);
void Invoke<T>(T data);
T Invoke<T>(int timeout);

我想调用第二个方法,传递Int32参数而不使用反射。选项包括:

Invoke(1);
Invoke<int>(1);
Invoke((int)1);
Invoke<int>((int)1);

但是,这些都没有调用所需的方法。我可以实现我想要的,还是应该采用方法重命名?

请注意,如果第三种方法不存在,我可以这样做:

Invoke(1); // Invokes the first method
Invoke<int>(1); // Invokes the second method

1 个答案:

答案 0 :(得分:4)

使用命名参数:

Invoke(data: 1);