.Net学习笔记----2015-06-28(值类型和引用类型)
2015-06-29 00:26
316 查看
值类型:int double char decimal bool enum struck;存在内存的栈里
引用类型: string 数组 自定义类 集合 object 接口;存在堆里
值传递和引用传递:
1、值类型在复制的时候,传递的是这个值的本身
2、引用类型在复制的时候,传递的是这个对象的引用
字符串是个特殊:
字符串由于其不可变性,每次赋值都会为其开辟一块新的内存如:
最终结果,s1 = 张三, s2 = 李四
上述代码中,ref把n的地址变成类number的地址,也就是,ref把值传递变成了引用传递。
如果不加ref,值传递是把number的值传递给n,方法中没有返回值,不会改变外部调用方法时传递的实参,
但是加了ref以后,n接收的是number的地址,所以n的改变就会影响number的值(按照自己的理解所写,有点乱,呵呵)
引用类型: string 数组 自定义类 集合 object 接口;存在堆里
值传递和引用传递:
1、值类型在复制的时候,传递的是这个值的本身
2、引用类型在复制的时候,传递的是这个对象的引用
字符串是个特殊:
字符串由于其不可变性,每次赋值都会为其开辟一块新的内存如:
string s1 = "张三"; string s2 = s1; s2 = "李四"; Console.WriteLine(s1); Console.WriteLine(s2); Console.ReadKey();
最终结果,s1 = 张三, s2 = 李四
int number = 10; TestTwo(ref number); Console.WriteLine(number); Console.ReadKey(); } public static void TestTwo(ref int n) { n += 10; }
上述代码中,ref把n的地址变成类number的地址,也就是,ref把值传递变成了引用传递。
如果不加ref,值传递是把number的值传递给n,方法中没有返回值,不会改变外部调用方法时传递的实参,
但是加了ref以后,n接收的是number的地址,所以n的改变就会影响number的值(按照自己的理解所写,有点乱,呵呵)
相关文章推荐
- matlab 字符串处理函数
- java自带线程池和队列详细讲解
- FFTW的使用
- Linux创建删除文件夹、文件
- 探秘启明星辰大数据安全分析平台
- mysql触发器讲解
- Linux中vi操作详细
- LeetCode Minimum Path Sum
- 易宝典文章——玩转Office 365中的Exchange Online服务 之十一 怎样在Exchange Online中配置邮件传递限制
- 1012--映射一对多关联关系(.双向 1-n)
- nyoj216
- 数据类型及数据表的操作
- android 中 图形缩放
- 存储过程与事务
- vim g s 对比
- 初涉MySQL
- 手机APP UI设计尺寸基础知识
- STM32 CRC-32 Calculator Unit
- 黑马程序员——Java中类的加载与反射笔记
- 作业——tab切换简易版