簡體   English   中英

我應該使用隱式轉換到返回類型以幫助調試嗎?

[英]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.

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