C#学习笔记 —— 值类型和引用类型

来源:互联网 发布:智能电视直播软件apk 编辑:程序博客网 时间:2024/05/18 02:33

值类型和引用类型。

 

在C#中,预置15个类型,除了string和Object是引用类型以外,其他都是值类型。

用户自定义的也都是引用类型。

 

所有引用类型都是分配在内存堆上,CLR上有垃圾内存回收算法会检测到每个资源是否会再被访问,自动清理不再被访问的资源。

C#中的引用用法和C++的类似,但是实现方式实际上和C++的指针相似。

 

C#中string是特殊的引用类型,在我们使用起来和值类型类似。但是使用等于号赋值时不会产生C++中string的拷贝构造。

 

如 string a="hello world"   string b = a 则b会指向a创建时分配的堆内存,但是如果此时我改变a或者b——

则会导致b重新再堆上申请一块内存存放自己的值。——感觉从很大的程度上降低了对程序员的要求,不过实现原理上就复杂些了。

 

 

原创粉丝点击