C#学习笔记——参数传递
来源:互联网 发布:nginx htaccess 编辑:程序博客网 时间:2024/06/07 05:38
1、值传递
(1)参数为值类型
方法内发生的任何更改对变量的原始值无任何影响。
(2)参数为引用类型
EX
staticvoid Change(int[] pArray) ;
Change(arr);
由于参数pArray是对arr的引用,所以有可能更改数组元素的值。但是,试图将参数pArray重新分配到不同的内存位置时,该操作仅在调用方法内有效,并不影响原始变量arr。
2、引用传递
(1)参数为值类型
EX
staticvoid SquareIt(refint x)
SquareIt(ref n);
参数的值在调用方法后发生更改。
(2)参数为引用类型
EX
staticvoid Change(refint[] pArray)
Change(ref arr);
方法内发生的任何更改都会影响调用程序中的原始变量。
3、引用传递的两种关键字
(1)Ref关键字
若要使用ref参数,则方法定义和调用方法都必须显式使用ref关键字。传递前要进行初始化。
应用场合:可用来交换数值、字符串。
(2)Out关键字
out参数传递的变量不需要在传递之前进行初始化,但需要调用方法以便在方法返回之前赋值。
应用场合:希望方法返回多个数值。
4、Out和ref的异同
(1)ref和out关键字在运行时的处理方式不同,但在编译时的处理方式相同。因此,如果一个方法采用ref参数,而另一个方法采用out参数,则无法重载这两个方法。
(2)如果一个方法采用ref或out参数,而另一个方法不采用这两类参数,则可以进行重载。
(3)ref参数的参数必须最先初始化,out的参数在传递之前不需要显式初始化。
(4)传递数组
数组类型的out参数前必须由被调用方为其赋值,
数组类型的ref参数必须由调用方明确赋值。因此不需要由接受方明确赋值。可以将数组类型的ref参数更改为调用的结果。例如,可以为数组赋以null值,或将其初始化为另一个数组。
- C#学习笔记——参数传递
- C#学习笔记一--C#中的参数传递
- C#学习笔记一--C#中的参数传递
- C#学习笔记一--C#中的参数传递
- C#学习笔记一--C#中的参数传递
- [学习笔记]C#中out与ref参数传递方式
- C++学习笔记12——函数的参数传递
- Spring 学习笔记5—— SpringMVC的参数传递
- C++学习笔记——函数的参数传递
- springMVC学习笔记---参数传递
- Java学习笔记----参数传递
- C#学习系列之多线程传递参数
- 学习C++——参数传递
- [读书笔记]C#学习笔记八:StringBuilder与String详解及参数传递问题剖析
- [读书笔记]C#学习笔记八:StringBuilder与String详解及参数传递问题剖析
- C++学习笔记(四)——关于数组作为函数参数的值传递和引用传递
- Java与C++函数参数传递比较——C++学习笔记一
- 林锐的《高质量编程》学习笔记——指针参数传递内存
- 深入浅出js常见问题
- IPHONE开发---本地化的使用(支持多国语言)
- android之单元测试——上
- adb工具&操作命令详解
- CMap map
- C#学习笔记——参数传递
- C# 控件缩写大全+命名规范+示例
- 为什么C和C++牛人多?【转自csdn大本营……】
- JQUERY获取当前页面的URL信息
- 第一节 drupal的安装和汉化
- 为什么“色情版Netflix”永远只是一个幻想?
- Java Web中PO/VO/DAO/POJO层的解释与应用
- LDD3源码分析之阻塞型I/O
- Google AJAX 搜索 API