2017-05-22 36 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并导致异常。

由于我只看最高级别,所以在实现这些方法之间的常用方法时也可能存在差异。

只要说一下,孩子班级很少看起来与其父母完全相同。

相关问题