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

本文介绍了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 公共语言规范

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值