我最近开始学习C#,我想知道C#是否纯粹面向对象,在两种情况下都有理由(例如是或否)。
答案 0 :(得分:1)
我不是100%确定“纯粹”面向对象的含义,但我的答案是肯定的。
Smalltalk是一种“纯粹的”面向对象编程语言,意思是 与Java和C ++不同,它们之间没有区别 是原始类型的对象和值。在Smalltalk, 原始值,例如整数,布尔值和字符也是 目的,强>
这与C#相同。
我发现了一篇名为Wyvern: A Simple, Typed, and Pure Object-Oriented Language
1.1什么使面向对象的模型变得纯粹?
从这些来源,我们提取了我们希望的三个关键要求 满足于提出一个类型化,纯粹的面向对象模型:
统一访问原则。在Meyer,Cook和Kay之后,应该只能通过调用他们的方法来访问对象。
互操作性和统一处理。默认情况下,同一面向对象接口的不同实现应该互操作 并且应该很容易在运行时均匀地处理它们(例如,通过 在a中存储相同接口的不同实现 单一运行时数据结构)。
状态封装。所有可变状态都应该封装在对象中。