C#语言类型

讨论

所有类型在,值类型,引用类型用new创建,值类型由编译器自动补全

int等引用类型是轻量化结构更像是结构体

值类型在栈中,引用类型在堆中

所有类型由类派生,可以说每个是对象,也可以不是

由于.NET Framework中的所有类都是从Object派生的,因此Object类中定义的每个方法都可用于系统中的所有对象。派生类可以并重写其中的一些方法。


 

由于C#没有单独的一组基本类型和对象类型。

争论

哲学

何为对象???什么是对象?:)我认为这就像一套数学。什么是“一切”? -  Mehrdad Afshari 09年4月24日在13:24

wiki

一些面向对象的编程语言区分了引用类型和值类型,在运行效率和语法或语义问题等原因下,通常将这些类型称为不存在复杂值类型的平台上的对象和非对象。

Some object-oriented programming languages make a distinction between reference and value types, often referred to as objects and non-objects on platforms where complex value types don't exist, for reasons such as runtime efficiency and syntax or semantic issues. 

个人观点

个人认为c#里的预置类型,不是基本类型,可以自己diy的。int这种是受限的类,类似于结构体。对象是不受限的类。

参考

https://msdn.microsoft.com/en-us/library/system.int32%28v=vs.110%29.aspx?f=255&MSPPError=-2147217396

https://baike.baidu.com/item/%E5%85%AC%E5%85%B1%E8%AF%AD%E8%A8%80%E8%BF%90%E8%A1%8C%E6%97%B6/4361434?fr=aladdin

https://en.wikipedia.org/wiki/Object_type_(object-oriented_programming)

原文地址:https://www.cnblogs.com/fengmao31/p/13880185.html