c#值类型和引用类型

上传人:公**** 文档编号:513397885 上传时间:2024-02-08 格式:DOCX 页数:3 大小:9.84KB
返回 下载 相关 举报
c#值类型和引用类型_第1页
第1页 / 共3页
c#值类型和引用类型_第2页
第2页 / 共3页
c#值类型和引用类型_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

《c#值类型和引用类型》由会员分享,可在线阅读,更多相关《c#值类型和引用类型(3页珍藏版)》请在金锄头文库上搜索。

1、namespace是本项目所在的命名空间,本窗体后的名字是“Forml,也是一个类using 用来引用本例需要的一些底层类库class Programstatic void Main(string args)Study A1 = new Study();Study A2 = A1;A2.x = 15;/引用类型/int B1 = 30;int B2 = B1;B2 = 35;/值类型/Console.WriteLine(A1.x= + A1.x + ,A2.x= + A2.x);Console.WriteLine(B1= + B1 + ,B2= + B2);class Studypublic

2、int x = 10;public关键字,声明主函数是public就是告诉其他类可以访问这个函数。static关键字,高职编译器main函数是一个静态函数。就是说main函数中的代码 是存储在静态存储区地,也即当定义了类以后这段代码就已经存在了。如果main ()方法没有使用static修饰符,那么编译不会出错,但是如果你使试图执行该 程序将会报错,提示main()方法不存在。因为包含main ()的类并没有实例 化(即没有这个类的对象),所以其main ()方法也不会存。而使用static修饰符 则表示该方法是静态的,不需要实例化即可使用。所有值类型都继承自System.ValueType,

3、但是ValueType没有附加System.Object包含之外其它任何方法,不过它倒是改写了 Equals和GetHashCode两个方法。引用类型变量的Equals比较的是二者的引用地址而不 是内部的值,值类型变量的Equals方法比较的是二者的值而不是哦对了,值类型压根儿没有引用地址;值类型不能作为其它任何类型的基类型,因此不能向值类型中增加任 何新的虚方法,更不该有任何抽象方法,所有的方法都是sealed的(不可重写);未装箱的值类型分配在栈上而不是堆上,而栈又不是GC的地盘儿, 因此GC根本不过问值类型变量的死活,一旦值类型变量的作用范围一过,它所 占的内存空间就立即被回收掉,不劳GC亲自动手。1. 值类型的数据存储在内存的栈中;引用类型的数据存储在内存的堆中,而内 存单元中只存放堆中对象的地址。2. 值类型存取速度快,引用类型存取速度慢。3. 值类型表示实际数据,引用类型表示指向存储在内存堆中的数据的指针或 引用4. 值类型继承自System.ValueType,引用类型继承自System.Object5. 栈的内存分配是自动释放;而堆在.NET中会有GC来释放C#中基本数据类型是值类型,结构也是值类型。而数组、类、接口、字符串都是引用类型。通俗点讲值类型就是现金;引用类型就是存折。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号