[英]Should I use an implicit conversion to my return type, to aid in debugging?
我的API中有以下方法
public bool CheckSignature(string data, string key)
{ ... }
如果我返回false(對於無效的簽名),我希望能夠在不更改所有調用者代碼的情況下干凈地獲取調試數據。
如果我要返回一個對象,則只需添加這樣的調試類型
public class SignatureResult
{
public bool Validation {get;set;}
public SpecialDebugObject Debug {get;set;}
}
對我來說,更改API以使其返回SignatureResult
但隱式轉換為bool以使現有客戶端不會中斷,是否是個壞主意?
對新的API可以這樣做嗎?
現有的客戶會破產,這是一個重大的變化。
針對CheckSignature
編寫的代碼期望返回bool
。 即使您的類型和布爾之間存在隱式轉換,編譯后的IL也缺少正確的轉換指令。
這類似於將字段更改為屬性: 您失去了二進制兼容性 。
對新的API可以這樣做嗎?
我不會 您正在公開調試邏輯。
對於被認為是.NET重大更改的人,這是一個很好的指南:.NET 中API重大更改的權威性指南 。 如您所見,方法簽名非常明智。 更改返回類型,甚至更改參數名稱都被視為重大更改。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.