如果不使用Object类型,.NET是否能够正常运行?

Joa*_*nge 7 .net c# types type-systems base-class-library

我问这个是因为看起来像使用Object似乎是一个解决某些问题的简单方法,比如"我没有特定的类型,所以使用Object"等.

这也让我感到好奇的原因是因为我的一位同事告诉我,如果.NET是一个真正的面向对象的平台,那么它就不必拥有像Object这样的所有类型.

因此,如果.NET没有Object类型,那么解决发生问题的替代方法是什么才能使其功能相同?

另外需要注意的是,这不是打击.NET,因为我每天都在工作中使用它.只想了解更多信息.

编辑:我记得的另一个注意事项是因为Object类型存在,它的影响遍及整个.NET.像IEnumerable一样存在但IEnumerable <T>.在许多情况下,您必须实现通用和非通用版本的事物等.

Dav*_*sky 2

在强类型框架中,对象必须从某个地方开始。

该类型object并不是为了提供“简单”的包罗万象的转换选项,或者强迫您转换到最低的公分母。它为对象提供了绝对最一般的情况——参考比较的基础和方便的ToString()方法,等等。

  • 为什么对象必须从某个地方开始?在 C++ 中,他们不需要这样做。 (3认同)
  • 还有 GetType() 方法,它继承自 System.Object,因为我们知道所有对象都有一个 Type。 (2认同)
  • 似乎你自相矛盾:“不是为了让事情变得简单”和“它是为了提供 [...] 和一个方便的 ToString() 方法” (2认同)