区分重载的泛型方法和非泛型方法
本文关键字:泛型方法 重载 | 更新日期: 2023-09-27 18:21:21
这必须在某个地方涵盖,但我很难表达我的搜索条件,所以…
下面是由同一类型声明的三个实例方法。
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
使用命名参数:
Invoke(data: 1);