簡體   English   中英

區分重載的通用方法和非通用方法

[英]Distinguishing Between Overloaded Generic and Non-Generic Methods

必須在某處進行覆蓋,但是我很難表達我的搜索條件,所以...

下面是用相同類型聲明的三個實例方法。

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);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM