一个用关键字 ref 标示,一个用 out 标示。

牵扯到数据是引用类型还是值类型。

一般用这两个关键字你是想调用一个函数将某个值类型的数据通过一个函数后进行更改。传 out 定义的参数进去的时候这个参数在函数内部必须初始化。否则是不能进行编译的。ref 和 out 都是传递数据的地址,正因为传了地址,才能对源数据进行修改。

一般情况下不加 ref 或者 out 的时候,传值类型的数据进去实际上传进去的是源数据的一个副本,也就是在内存中新开辟了一块空间,这里面存的值是与源数据相等的,这也就是为什么在传值类型数据的时候你如果不用 return 是无法修改原值的原因。但是你如果用了 ref,或者 out,这一切问题都解决了,因为他们传的是地址。

out 比起 ref 来说,还有一个用法就是可以作为多返回值来用,都知道函数只能有一个返回值,C#里,如果你想让一个函数有多个返回值,那么OUT能很容易解决。

其实在c中,传递指针是类似的效果

最新文章

  1. python网络编程【三】(网络服务器)
  2. 获取su后执行的脚本的返回值
  3. python数据结构与算法——图的基本实现及迭代器
  4. WinCE应用程序崩溃提示框的处理
  5. namenode无法自动切换的问题
  6. 监控Tomcat并启动
  7. IntraWeb.v14.0.32安装及破解指南
  8. Linux imagemagic(转载)
  9. <<开源硬件创客 15个酷应用玩转树莓派>>
  10. OCP读书笔记(14) - 管理数据库性能
  11. iOS简单快速集成Cordova
  12. Caused by: java.lang.ClassNotFoundException: org.hibernate.engine.FilterDefinition
  13. 自定义react数据验证组件
  14. [转载]Oracle日期周详解IW
  15. Optaplanner规划引擎的工作原理及简单示例(2)
  16. 《Android进阶之光》--网络编程与网络框架
  17. Java包装
  18. test20190331
  19. URAL1991 The battle near the swamp 2017-04-12 18:07 92人阅读 评论(0) 收藏
  20. hdu 5973 Game of Taking Stones(大数,bash game¥)

热门文章

  1. turtle1
  2. spring的exception
  3. 测试函数——python编程从入门到实践
  4. redis源码分析(一)-sds实现
  5. PB 将菜单中的部分按钮设置为某些页面不可选中
  6. MacBook Pro配置汇编开发环境
  7. git 学习笔记 --- Rebase
  8. 如何获取图片上传OSS后的缩略图 超简单
  9. np.any()基本用法与不一样环境中的用法
  10. python基础知识(二)