值传递和引用传递
来源:互联网 发布:电脑必备办公软件 编辑:程序博客网 时间:2024/04/29 12:07
众所周知,在编程中的参数调用方法里,有值传递和引用传递之分。所以,我也知道,值传递就是只把参数的值传递过去,等于是又生成了一个副本,不会对原来的变量造成任何影响。一般情况下,C#中就是采用的这种方法。而引用传递则等于是传递了一个指针,所以,会影响到原来的值。
为什么会说到这个很基础的问题呢?当然还是因为编程工作中遇到的困难引起的。昨天,写了一个函数,将DataView作为参数传递到函数中进行处理,我用dv[0]["areaname"].ToString();(dv为一个DataView实例),想得到经RowFilter后的某字段值。结果却出乎我的意料之外,其实问题是出在这句代码上,是因为我对DataView的错误理解造成的。但我总以为是在参数传递过程中出现的问题,浪费了不少时间。不过,在这一过程中,也让我对于值传递和引用传递又有了更进一步的理解。
其实,这种设计也符合自然的思想。程序员在调用函数的时候,一般情况下都不会希望影响到原来的值,这样往往会造成思维上的混乱。所以,默认情况下采用值传递,是很自然的设计。如果有特殊的要求,则可以通过关键字ref来表明其引用的方式。
时间关系,关于DataView的错误理解,我抽时间另文说明。
为什么会说到这个很基础的问题呢?当然还是因为编程工作中遇到的困难引起的。昨天,写了一个函数,将DataView作为参数传递到函数中进行处理,我用dv[0]["areaname"].ToString();(dv为一个DataView实例),想得到经RowFilter后的某字段值。结果却出乎我的意料之外,其实问题是出在这句代码上,是因为我对DataView的错误理解造成的。但我总以为是在参数传递过程中出现的问题,浪费了不少时间。不过,在这一过程中,也让我对于值传递和引用传递又有了更进一步的理解。
其实,这种设计也符合自然的思想。程序员在调用函数的时候,一般情况下都不会希望影响到原来的值,这样往往会造成思维上的混乱。所以,默认情况下采用值传递,是很自然的设计。如果有特殊的要求,则可以通过关键字ref来表明其引用的方式。
时间关系,关于DataView的错误理解,我抽时间另文说明。
- 值传递和引用传递
- 值传递和引用传递
- 值传递和引用传递
- 值传递和引用传递
- 引用传递和值传递
- 值传递和引用传递
- 值传递和引用传递
- 值传递和引用传递
- 值传递和引用传递
- 值传递和引用传递
- 值传递和引用传递
- 值传递和引用传递
- 值传递和引用传递
- 值传递和引用传递
- 值传递和引用传递
- 值传递和引用传递
- 值传递和引用传递
- 引用传递和值传递
- ubuntu的一些安装设置
- 红旗高级服务器Linux 4.1 最新安装Oracle9204 改记
- ubuntu备份更新源
- 在FLEX中自定义光标造型
- FLEX中提高效果和过渡效果性能的技巧
- 值传递和引用传递
- ubuntu 快速设置
- 基于Xfire SOAP Header的WebService安全验证教程
- Linux与Windows双系统下的Grub引导管理器安装
- Linux/UNIX命令dd简介
- 使用 Spring 更好地处理 Struts 动作
- 硬盘安装Ubuntu Linux
- 情感===寂寞不是出轨的理由!
- 新手的ubuntu安装日志