为了账号安全,请及时绑定邮箱和手机立即绑定

C# 对象派生

C# 对象派生

C#
四季花海 2021-09-19 16:50:49
根据规格:“.NET Framework 中的所有类都是从 Object 派生的”如何从对象基类派生类而不显式将 Object 类编写为父类?IE:public sealed class String : IComparable, ICloneable, IConvertible, IEnumerable, IComparable<string>, IEnumerable<char>, IEquatable<string>
查看完整描述

1 回答

?
慕哥9229398

TA贡献1877条经验 获得超6个赞

另一个注意事项:您可以访问的所有基本方法都在每个类/类型中实现:

等于、ReferenceEquals、GetHashCode、GetType、ToString。

这意味着始终存在来自 System.Object 的隐藏继承。“object”只是一个别名——当你在 VS 中选择“object”时,它也会突出显示所有 System.Object 类以表明身份(反之亦然)。它似乎很难实现到 C# 中,我想从“对象”继承是不可避免的。它是允许您访问任何内容的基础,无论它是什么 - 即使您几乎无法使用它做任何事情而不将其退回。

object x = new *anything*;

此外,不能分配抽象类实例,但在“抽象”的末尾主动阻止它,而不是在“对象”上接收它。

如果 object 以其他方式工作,则必须从“System.Object”继承所有基类,这将是乏味且毫无意义的。无论如何,对象并不意味着要被排除在外,因为它会导致巨大的损失,因为在有意义的时候没有确定的方式来引用事物(今天我写了一个类来收集对象,过滤输出空值并以格式化字符串输出它们的 ToString() 以用于调试)。

另一个有趣的点是'object'可以被抽象化,这样object x = new object(); 不再起作用。因为对象到底是什么?这真的没什么,但仍然是一些东西。它比 bool 变量产生的信息少。但 C# 开发人员决定不这样做,这似乎导致更简单。也没有/没有充分/充分的理由禁止它。


查看完整回答
反对 回复 2021-09-19
  • 1 回答
  • 0 关注
  • 175 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信