我最近开始学习C#,我想知道C#是否是纯面向对象的,在这两种情况下都有原因(是或否)。
我不能百分之百确定"纯"面向对象的确切含义,但我的答案是肯定的。
来自Smaltalks的维基百科页面;
Smalltalk是一种"纯粹"的面向对象编程语言,意思是与Java和C++不同是基本类型的对象和值。在Smalltalk中,基元值,如整数、布尔值和字符也是对象,
这与C#中的相同。
我发现一篇有趣的文章叫Wyvern: A Simple, Typed, and Pure Object-Oriented Language
1.1是什么让面向对象模型变得纯粹?
从这些来源中,我们提取了我们希望满足于提出一个类型化的、纯面向对象的模型:
统一访问原则。继Meyer、Cook和Kay之后,应该只能通过调用它们的方法来访问对象。
互操作性和统一处理。默认情况下,同一面向对象接口的不同实现应该互操作,并且在运行时应该很容易对它们进行统一处理(例如,通过将同一接口的不同实现存储在单个运行时数据结构)。
状态封装。所有可变状态都应该封装在对象中。