System.Object 类

本文提供了此 API 参考文档的补充说明。

Object 类是所有 .NET 类的最终基类;它是类型层次结构的根。

由于 .NET 中的所有类都派生自 Object,因此类 Object 中定义的每个方法都可用于系统中的所有对象。 派生类可以替代其中一些方法,包括:

  • Equals:支持对象之间的比较。
  • Finalize:在自动回收对象之前执行清理操作。
  • GetHashCode:生成一个对应于对象值的数字,以支持哈希表的使用。
  • ToString:制造描述类实例的人类可读文本字符串。

语言通常不需要类来声明继承 Object ,因为继承是隐式的。

性能注意事项

如果要设计必须处理任何类型的对象的类(如集合),则可以创建接受类实例的 Object 类成员。 但是,装箱和取消装箱类型的过程会产生性能成本。 如果你知道新类经常处理某些值类型,则可以使用两种策略之一来最大程度地降低装箱成本。

  • 创建一个接受类型的 Object 常规方法,以及一组特定于类型的方法重载,这些重载接受你期望类经常处理的每个值类型。 如果类型特定的方法接受调用参数类型,则不会发生任何装箱,并且调用特定于类型的方法。 如果没有与调用参数类型匹配的方法参数,则会对参数进行装箱,并调用常规方法。
  • 设计类型及其成员以使用 泛型。 在创建类的实例并指定泛型类型参数时,公共语言运行时将创建关闭的泛型类型。 泛型方法特定于类型,无需装箱调用参数即可调用。

尽管有时有必要开发接受和返回 Object 类型的常规用途类,但还可以提供特定于类型的类来处理常用类型,从而提高性能。 例如,提供特定于设置和获取布尔值的类可消除装箱和取消装箱布尔值的成本。