C#基础复习(一)数据类型

        近期感觉到自己的C#基础不够扎实,在工作中,有时处于“了解但不能很好使用”的处境,因此,决定进一步扎实基础,重新学习下C#的基础知识。

        一·C#的数据类型

C#的数据类型主要分为两大类:值类型(Value Types)和引用类型(Reference Types)。

1.值类型

        值类型变量,由System.ValueType派生,通常直接分配系统内存来存储值。常见类型有:bool, byte(8位无符号整数), sbyte(8位有符号整数), char, int, uint, float, double, short, ushort, decimal(128位十进制),  long。

2.引用类型

        引用类型,通过指向某个地址的内存,从而得到该地址内存的值,而不是直接指向数据。常见的内置有:object,string,dynamic. 其中object为对象,是所有类的基类。string为字符串。dynamic为动态类型,在运行阶段进行赋值。

        这里做延伸说明:值类型和引用类型,和堆,栈的关系。首先说明堆和栈的区别:

        栈是一个系统内存数组,由系统分配的,同数据结构中的概念一致,遵循后入先出的规则,通常值类型存储在栈上。

        堆是一块内存存储区域,堆里的内存可以按照任意顺序进行存入和移除,其中移除主要通过垃圾回收,CLR(Common Language Runtime)中的GC(Garbage Collection)在检测到堆中的某个数据项没有访问时,会自动清除掉堆中的对象,以释放内存。

附加说明:

CLR:Common Language Runtime 公共语言运行时

CTS:Common Type System 公共类型系统

CLS:Common Language Specification 公共语言规范

你可能感兴趣的:(C#基础复习,c#)