猿问

C# 对象派生

根据规格:

“.NET Framework 中的所有类都是从 Object 派生的”

如何从对象基类派生类而不显式将 Object 类编写为父类?

IE:

public sealed class String : IComparable, ICloneable, IConvertible, IEnumerable, IComparable<string>, IEnumerable<char>, IEquatable<string>



四季花海
浏览 176回答 1
1回答

慕哥9229398

另一个注意事项:您可以访问的所有基本方法都在每个类/类型中实现:等于、ReferenceEquals、GetHashCode、GetType、ToString。这意味着始终存在来自 System.Object 的隐藏继承。“object”只是一个别名——当你在 VS 中选择“object”时,它也会突出显示所有 System.Object 类以表明身份(反之亦然)。它似乎很难实现到 C# 中,我想从“对象”继承是不可避免的。它是允许您访问任何内容的基础,无论它是什么 - 即使您几乎无法使用它做任何事情而不将其退回。object&nbsp;x&nbsp;=&nbsp;new&nbsp;*anything*;此外,不能分配抽象类实例,但在“抽象”的末尾主动阻止它,而不是在“对象”上接收它。如果 object 以其他方式工作,则必须从“System.Object”继承所有基类,这将是乏味且毫无意义的。无论如何,对象并不意味着要被排除在外,因为它会导致巨大的损失,因为在有意义的时候没有确定的方式来引用事物(今天我写了一个类来收集对象,过滤输出空值并以格式化字符串输出它们的 ToString() 以用于调试)。另一个有趣的点是'object'可以被抽象化,这样object x = new object();&nbsp;不再起作用。因为对象到底是什么?这真的没什么,但仍然是一些东西。它比 bool 变量产生的信息少。但 C# 开发人员决定不这样做,这似乎导致更简单。也没有/没有充分/充分的理由禁止它。
随时随地看视频慕课网APP
我要回答