1. class Program
  2. {
  3. static void Main(string[] args)
  4. {
  5. //普通 :
  6. int k1 = ;
  7. int result1 = Test1(k1, );
  8. Console.WriteLine("/*普通:*/");
  9. Console.WriteLine(result1);
  10. Console.WriteLine(k1);
  11.  
  12. //ref :
  13. //用法: 参数要用 ref 一起传递,并且是可以赋值的变量,ref 变量要先赋值
  14. int k2 = ;
  15. int result2 = Test2(ref k2, );
  16. Console.WriteLine("/*ref:*/");
  17. Console.WriteLine(result2);
  18. Console.WriteLine(k2);
  19.  
  20. //out :
  21. //用法: 参数要用 out 一起传递,并且是可以赋值的变量,out 变量不用先赋值(只定义即可)
  22. int k3;
  23. Console.WriteLine("/*out:*/");
  24. int result3 = Test3(out k3, );
  25. Console.WriteLine(result3);
  26. Console.WriteLine(k3);
  27. }
  28.  
  29. /// <summary>
  30. /// 普通
  31. /// </summary>
  32. public static int Test1(int k, int p)
  33. {
  34. k++;
  35. return k + p;
  36. }
  37.  
  38. /// <summary>
  39. /// ref
  40. /// </summary>
  41. public static int Test2(ref int k, int p)
  42. {
  43. k++;
  44. return k + p;
  45. }
  46.  
  47. /// <summary>
  48. /// out
  49. /// </summary>
  50. public static int Test3(out int k, int p)
  51. {
  52. //out 未赋值的变量不能使用,所以在方法内部赋值。
  53. k = + ;
  54. return k + p;
  55. }
  56. }

运行结果:

c# ref与out用法的更多相关文章

  1. c# out ref parames的用法

    out ref parames的用法(将值传递转换成引用传递) Out 一般用于返回多个值,在方法体中会清空out变量,侧重于一个方法有多个返回值得时候使用 Ref有进有出,可以在方法体外必须赋初值, ...

  2. C#中ref关键字的用法总结

    ref表示引用的意思,C#中它有多种用法,这里简单总结一下: 1.按引用传递参数 具体可见:C#中的值传递与引用传递(in.out.ref) 2.引用局部变量 引用局部变量指的是在变量声明时使用ref ...

  3. vue中$ref的基本用法

    1.使用在一般的标签上 <div id="app"> <input ref="count" type="text" v-m ...

  4. ref关键字的用法

    ref 关键字通过引用(而非值)传递参数. 通过引用传递的效果是,对所调用方法中的参数进行的任何更改都反映在调用方法中. 例如,如果调用方传递本地变量表达式或数组元素访问表达式,所调用方法会将对象替换 ...

  5. 2018-7-17-随笔-params和ref、out用法、事件访问器

    **************************************************************************************************** ...

  6. C#之Ref,Out以及TryParse()的用法

    ref和out用法很简单,我记下来也提醒自己要用更好的方式去写代码,不要让代码过于臃肿,让人看得头痛.直接写 ref:ref关键字就是让参数进行传递,但是需要初始化,而out不需要初始化参数 ref用 ...

  7. ref 和 out 的用法和区别以及params用法

    方法参数可以划分为一下四种类型1 值参数:声明时不含任何修饰符2 引用参数:以ref修饰符声明3 输出参数:以out修饰符声明4 参数数组:以params修饰符声明 引用参数和输出参数不创建新的存储位 ...

  8. Spring----. ref的用法

      ref元素是用在property中,来设置需要引用的容器管理的其它Bean.     它的用法:<ref bean|local|parent="someBean"> ...

  9. C#中的值传递与引用传递(in、out、ref)

    在C#中,方法.构造函数可以拥有参数,当调用方法或者构造函数时,需要提供参数,而参数的传递方式有两种(以方法为例): 值传递 值类型对象传递给方法时,传递的是值类型对象的副本而不是值类型对象本身.常用 ...

随机推荐

  1. nodejs 安装失败 ,出现error 2502 和error2503

    出现error 2502 和error2503是因为win8的权限问题所导致的,具体说就是要以管理员身份进行安装就可以解决,下面详细来说一下. 1.cmd命令行点击以管理员身份运行. 2.这时候就可以 ...

  2. FPGA型号解读

  3. box-sizing的用法

        默认情况下设置盒子的width是指内容区域,所以在设置边框会使得盒子往外扩张,如果要让css设置的width就是盒子最终的宽度,那么就要设置box-sizing:border-box,     ...

  4. 第一个java程序中文乱码以及如何解决

    出现问题:编码gbk的不可映射字段 原因:.java文件的编码与cmd命令执行器使用的编码不一致 我们使用的.java文件的编码为UTF-8 Cmd默认使用的编码为GBK: 解决方式统一编码: 方法1 ...

  5. VIM入门

    目录 一.vim介绍 二.vim颜色显示和移动光标 三.vim一般模式下移动光标 四.vim一般模式下复制.剪切和粘贴 五.进入编辑模式 六.vim命令模式 七.vim实践 一.vim介绍 vi是最重 ...

  6. leetcode题解2. Add Two Numbers

    题目: You are given two non-empty linked lists representing two non-negative integers. The digits are ...

  7. VS使用Nuget教程详解 Visual studio 安装第三方的组件库

    首先说明Nuget是什么呢?它的官方是:https://www.nuget.org/ 官方主页的介绍如下: What is NuGet? NuGet is the package manager fo ...

  8. DP常用模板

    递推模板: 从结果往回推,需要设定边界为无穷大,并建立状态转移方程 ;j<n;j++) d[n][j]=a[n][j];///边界处理 ;i>=;i--){ ;j<i;j++)/// ...

  9. 全志A33开发板Linux内核定时器编程

    开发平台 * 芯灵思SinlinxA33开发板 淘宝店铺: https://sinlinx.taobao.com/ 嵌入式linux 开发板交流 QQ:641395230 Linux 内核定时器是内核 ...

  10. 使用outflux 导入influxdb 的数据到timescaledb

    influxdb 以及timescaledb 都是不错的时序数据库,timescaledb 团队提供了直接从influxdb 导入 环境准备 docker-compose 文件 version: &q ...