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

值类型和引用类型。

 

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

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

 

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

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

 

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

 

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

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

 

 

阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/rcfalcon/article/details/5631235
上一篇.NET下WebBrowser的一个BUG以及其替代品——geckofx
下一篇php riff2
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭