我實現一個IDictionary接口,它有參數object
其get
set
。除了使用在C#類型不匹配
object this [object key] { get; set; }
我想執行的關鍵是字符串類型,所以在我的代碼我做的:
(if key.GetType() != typeof(string)) {
//
}
我想扔如果發生了異常。但是我不知道在這種情況下使用什麼最合適的例外。最近一個我能找到的是TypeInitializationException和ArgumentException的。但是,在此document中聲明:「如果將錯誤參數傳遞給成員,請拋出System.ArgumentException或其某個子類型」,這讓我懷疑我的正確用例。
我應該用我的情況?我應該使用斷言而不是拋出異常嗎?
如果您願意,也可以實現自己的異常。 – tnw
如果您將它傳遞給null,您的代碼將通過空指針異常。如果你使用'!(鍵是字符串)',你會得到你在'if'中拋出的任何異常。 – Gabe
爲什麼不強制該鍵是類型參數中的字符串?例如IDictionary –