C#中ref和out的使用小结
ref是传递参数的地址,out是返回值,两者有一定的相同之处,不过也有不同点。

  使用ref前必须对变量赋值,out不用。

  out的函数会清空变量,即使变量已经赋值也不行,退出函数时所有out引用的变量都要赋值,ref引用的可以修改,也可以不修改。

  区别可以参看下面的代码:

using System;
class TestApp
{
 static void outTest(out int x, out int y)
 {//离开这个函数前,必须对x和y赋值,否则会报错。 
  //y = x; 
  //上面这行会报错,因为使用了out后,x和y都清空了,需要重新赋值,即使调用函数前赋过值也不行 
  x = 1;
  y = 2;
 }
 static void refTest(ref int x, ref int y)
 { 
  x = 1;
  y = x;
 }
 public static void Main()
 {
  //out test
  int a,b;
  //out使用前,变量可以不赋值
  outTest(out a, out b);
  Console.WriteLine("a={0};b={1}",a,b);
  int c=11,d=22;
  outTest(out c, out d);
  Console.WriteLine("c={0};d={1}",c,d);

  //ref test
  int m,n;
  //refTest(ref m, ref n); 
  //上面这行会出错,ref使用前,变量必须赋值

  int o=11,p=22;
  refTest(ref o, ref p);
  Console.WriteLine("o={0};p={1}",o,p);
 }

转载于:https://www.cnblogs.com/didangmao/archive/2011/10/18/2216095.html

C#中ref和out的使用小结相关推荐

  1. c#ref和out的相同点_C#中ref和out的使用小结

    ref是传递参数的地址,out是返回值,两者有一定的相同之处,不过也有不同点. 使用ref前必须对变量赋值,out不用. out的函数会清空变量,即使变量已经赋值也不行,退出函数时所有out引用的变量 ...

  2. Hibernate中对增删改查的小结

    Hibernate中对增删改查的小结 mysql中库表News,字段如下 id      |  int     |  auto_increment  |  primary key title   |  ...

  3. mysql中拼接用什么_MySQL中常用的拼接语句的小结(代码示例)

    本篇文章给大家带来的内容是关于MySQL中常用的拼接语句的小结(代码示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 前言:在MySQL中 CONCAT ()函数用于将多个字符串 ...

  4. Spring中ref local与ref bean区别

    为什么80%的码农都做不了架构师?>>>    Spring中ref local与ref bean区别 今天在做SSH框架Demo实例时,在ApplicationResources. ...

  5. mysql中describe怎么用_MySQL中describe命令的使用方法小结

    MySQL中describe命令的使用方法小结 一.describe命令用于查看特定表的详细设计信息 例如为了查看guestbook表的设计信息,可用:describe guestbook descr ...

  6. react 子组件ref_React中Ref 的使用方法详解

    本文实例讲述了React中Ref 的使用方法.分享给大家供大家参考,具体如下: React中Ref 的使用 React v16.6.3 在典型的React数据流中,props是父组件与其子组件交互的唯 ...

  7. React中ref的使用方法

    React中ref的使用方法 在react典型的数据流中, props 传递是父子组件交互的唯一方式:通过传递一个新的 props 值来使子组件重新 re-render ,从而达到父子组件通信.当然, ...

  8. vue中ref 的使用

    在vue 中  ref 和 refs 的使用: <ul ref="ul" class="his-list listItem" style="pa ...

  9. SQL中 UNION 和 UNION ALL 操作符小结

    SQL中 UNION 和 UNION ALL 操作符小结1.UNION 和 UNION ALL 操作符用于合并两个或多个 SELECT 语句的结果集[适用场景] 2.UNION 和 UNION ALL ...

最新文章

  1. 运用深度学习教机器人理解自然语言
  2. POPUP_GET_VALUES_DB_CHECKED’
  3. SpringSecurity分布式整合之实现思路分析
  4. 【刨根问底】32位/64位系统、地址总线以及最大内存寻址
  5. python---数据清洗
  6. Rav 瑞星产品了解
  7. TF卡里删掉文件后内存没变大_电视装好kodi后打不开?播放原盘4K很卡?教你怎么解决...
  8. 什么是MySQL索引?
  9. NOIP 2015 推销员
  10. 技术分享 | gh-ost 在线 ddl 变更工具​
  11. C++代码审阅–ice104协议从站(5)
  12. return的用法是什么?
  13. ★会用这两键,你就是电脑高手了
  14. 校内二手书籍交易交换系统
  15. 文献分享 基于多模态融合的ecg信号beat分类
  16. win10电脑桌面透明便签_在win10系统的电脑桌面上使用便签贴方法!
  17. 【第三方互联】3、腾讯QQ授权第三方登录
  18. javascript window.location的用法
  19. AMBA低功耗接口规范(Low Power Interface Spec)
  20. 知道什么是螃蟹效应吗?

热门文章

  1. python中异或运算_python – 基于ID列表有效计算XOR(^)校验和的方法
  2. Nginx笔记-关于nginx.conf中proxy_pass中末尾不加/的坑
  3. QML笔记-键盘事件中同时响应onDigitXXPressed与onPressed
  4. Linux工作笔记-重置密码解决MySQL for Linux错误 ERROR 1045 (28000): Access denied for user 'root'@'localhost' (usi
  5. C++/Qt工作笔记-static_cast在connect函数中的运用
  6. Qt学习笔记-Qt程序切换皮肤
  7. vue-element-xlsx在线读取Excel数据预览
  8. mysql ndb还原数据库_ndb_restore恢复出错
  9. mysql常见数据库设计_常见数据库设计
  10. pandas绘图_Pandas内置绘图方法(线型图、柱状图、密度图)