.net - 为什么 System.Object 在 .NET 中不是抽象的?

标签 .net oop

我知道它通常用作锁定对象,但这真的是充分的理由吗?
的意义是什么

object o = new object();

非抽象类是代表实际对象的东西。 “asdasdf”是一个字符串。 “对象”类可以有什么实际实例?这没有意义,OOP-wise。我的问题是它的存在是否有一些实际的原因(除了用作锁对象)。

最佳答案

有时您只需要一个对象,而不需要其他任何东西,例如当使用随机引用类型来实现多线程锁之类的事情时。不使对象抽象允许在这些情况下使用。 Monitor.Enter 和 Monitor.Exit 类(它是 C# 中“lock”关键字背后的基础)可以获取任何给定对象的锁,而不管实现如何。

关于.net - 为什么 System.Object 在 .NET 中不是抽象的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/484080/

相关文章:

c# - Expression.Block() 可以在 lambda 闭包中返回一个值吗?

oop - DDD 是浪费时间吗?

oop - 简单的英语单子(monad)? (面向没有FP背景的OOP程序员)

c# - 为什么合作取消任务的状态是 "Faulted"而不是 "Canceled"?

.net - c# 比较两个数组的条件

c# - 无法加载文件或程序集 'EntityFramework' 或其依赖项之一

c++ - 关于面向对象规划的建议

Javascript实例变量语法(AJAX页面刷新)

c++ - 如何设计一个C++类?

c# - 我怎样才能使用更多内存?