我正在開發一個外部API。我添加了一個方法,我的公共接口:僅因爲Null而更改名稱?
public void AddMode(TypeA mode);
public void AddMode(TypeB mode); // the new method, TypeB and TypeA are not related at all
它看起來很不錯,直到一個測試打破了被傳遞null
。這使編譯器對模糊的調用感到困惑。我通過投射null來修復測試。
但我的問題是:
- 我應該改名字的,只是因爲這個?
- 或者應該讓客戶像我一樣進行演員? (如果它們由於某種原因而無效)
在設計API時,這種情況下最好的是什麼?
編輯:
呼叫是這樣AddMode(空),不喜歡:
TypeA vl = null;
AddMode(v1); // this doesn't cause a problem
類似的問題在這裏[傳遞null](http://stackoverflow.com/questions/719546/c-passing-null-to-overloaded-method-which-method-is-called)和演員建議(一個優秀回答) – V4Vendetta
@MBen - 我建議改變方法的名稱。 – adatapost
@ V4Vendetta我在發佈之前看到:-)。不過,我想知道API的可用性,如果我應該讓客戶端可能會陷入這個。我不明白他們爲什麼會用null調用這些方法,但誰知道:-) – MBen