2017-05-22 74 views
-1

我在看「System.Exception」的structurall的派生類是否等同於`System.Exception`?

它是正確的,所有(或大多數情況下)的System.Exception派生類,無論是用戶定義或系統定義爲structurally equivalent到它們的基類System.Exception,儘管它們是non nominally equivalent

謝謝。

+0

也許你可以分享你的問題,爲什麼這是相關的,你想如何使用這些信息來構造你的代碼中的異常 - 例子可以很好地工作。 – Snympi

回答

1

不。當我從System.Exception繼承時,我將新變量添加到派生類。一些庫存異常也是如此。

1

不一定(可能根本沒有)。根據定義,任何繼承於System.Exception的類都將實現System.Exception實現的所有內容。但是,它也會有自己的差異。

讓我們來看一個簡單的例子:ArgumentNullException。這是一個System命名空間異常,所以由C#的創建者定義。比較System.ExceptionSystem.ArgumentNullException顯示差異。例如:

ArgumentNullException具有帶簽名ArgumentNullException(String,String)的附加構造方法,允許您傳入參數的名稱爲null。

ArgumentNullException有一個額外的屬性:ParamName,用於保存參數名稱爲null並導致異常。

由於我只看最高級別,所以在實現這些方法之間的常用方法時也可能存在差異。

只要說一下,孩子班級很少看起來與其父母完全相同。

相關問題