我在看
所有(或大多数情况下)System.Exception
的派生类(无论是用户定义的还是系统定义的)都是structurally equivalent到它们的基类System.Exception
是否正确,尽管他们是non nominally equivalent?
感谢。
答案 0 :(得分:1)
没有。当我从System.Exception继承时,我将新变量添加到派生类。一些股票例外也是如此。
答案 1 :(得分:1)
不一定(可能根本不存在)。根据定义,任何继承System.Exception的类都将实现System.Exception实现的所有内容。但是,它也会有自己的差异。
让我们看一个简单的例子:ArgumentNullException。这是一个System命名空间异常,因此由C#的创建者定义。将System.Exception与System.ArgumentNullException进行比较会显示出差异。例如:
ArgumentNullException有一个额外的构造函数,其签名为ArgumentNullException(String,String),允许您传入null参数的名称。
ArgumentNullException有一个额外的属性:ParamName,用于保存参数的名称为null并导致异常。
由于我只关注最高级别,因此实施这些方法的常用方法也可能存在差异。
我只想说,一个儿童班很少看起来与其父母相同。