c# - 为什么 .Net 中的每个类都派生自 System.Object?有什么好处?

标签 c# .net

为什么 .Net 中的每个类都派生自 System.Object?有什么好处?

最佳答案

我向您提出相反的问题:为什么不呢?如果不是某些共同的祖先,您将如何引用“任何类型的某些对象”?有时这是需要的。不过,实际上,System.Object类确实有一些通常对任何类型都有用的有用方法:

  • Equals 帮助测试相等性
  • GetHashCode 有助于提高集合的性能
  • GetType - 所有对象都有某种类型
  • Finalize 以支持 CLR finalization

因为这些东西对所有类型都是通用的,所以您可以拥有对多种类型智能操作的代码(甚至在泛型之前)。

话虽如此,但在 C# 4.0 中,他们引入了 dynamic,这实际上是它自己的类层次结构。它完全绕过静态类型检查,并且不一定派生自 object。 MSDN 有一个 good article关于它,和Chris Burrows' blog series也很有趣。

关于c# - 为什么 .Net 中的每个类都派生自 System.Object?有什么好处?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3545322/

相关文章:

sql - 使用scope_identity()执行嵌套批量插入的最快方法?

c# - 在 .NET 中用文本 block 初始化字符串的语法是什么?

c# - 保持控制始终位于首位

c# - 控制台应用程序打印 "Fail:"

c# - 如何将 ViewBag 中的一些对象传递给 Action? - 保留搜索、排序和分页选项

c# - 如何在 ASP.NET 站点中添加 favicon.ico

c# - 我们如何获得 .NET 3.5 的 QuickGraph?

c# - 如何从特征提取中找到匹配的数量?

c# - 尽管有 WS_EX_COMPOSITED 标志和 DoubleBuffered 属性,但在调整大小后闪烁

c# - .NET 中的 WMI 列表架构信息