對于 java/C#
有我的代碼:
class Room{
HashSet tables;
HashSet cups;
void AddTable(Table table){ tables.Add(table); }
void AddCup(Cup cup){ cups.Add(cup); }
Table GetTable(){...}
Cup GetCup(){...}
...
}
我可以合并AddTable成AddCup一種方法嗎Add<T>
像這樣:
void Add<T>(T t)
{
if (t is Table table) { ... }
else if (t is Ground ground) { ... }
...
}
T Get<T>(){
...
}
問題是太多了if else。
你有更好的建議嗎?
uj5u.com熱心網友回復:
將方法命名為相同,以便它們彼此多載:
void Add(Table table){ tables.Add(table); }
void Add(Cup cup){ cups.Add(cup); }
編譯器足夠聰明,可以呼叫正確的方法。(并且 Table 和 Cup 是不相關的類,所以沒有警告)。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/510451.html
標籤:爪哇C#仿制药语法句法糖
上一篇:Go泛型:自參考介面約束
下一篇:為什么在這里缺少泛型型別引數?
