C#中ref和out的使用小结

2016-02-19 15:07 1 1 收藏

下面是个C#中ref和out的使用小结教程,撑握了其技术要点,学起来就简单多了。赶紧跟着图老师小编一起来看看吧!

【 tulaoshi.com - 编程语言 】

  ref是传递参数的地址,out是返回值,两者有一定的相同之处,不过也有不同点。

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

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/bianchengyuyan/)

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

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

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/bianchengyuyan/)
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.tulaoshi.com/n/20160219/1608961.html

延伸阅读
控制结阅与过程编程清浪冲天 马敬发 QQ: 283989349 E-mail: mjf150080@tom.com 有问题时,我们可以通过http://www.hustc.mpc.cn 这个论坛, 或 通过QQ 共同学习和讨论 一、控制结构 首先了解比较运算符: == 等于 >= 大于等于 大于 了解逻辑运算符: && 逻辑AND || 逻辑OR ! 逻辑NOT 警告:执行顺序是:! && || if...else...结构: 第...
介绍 API(Application Programming Interface),我想大家不会陌生,它是我们Windows编程的常客,虽然基于.Net平台的C#有了强大的类库,但是,我们还是不能否认API在Windows编程中的重要性。大多数的编程语言都支持API编程,而.Net平台中的MFC(Microsoft Foundation Class Library)构架本身就封装了大部分的API。 做为程序员,...
这篇文章我想复习下C#中的基元类型。虽然搞清楚基元类型的知识并不会是你工作的必要条件,但做为一个搞技术的人来说还是非常有必要的。起码可以对付有些显得比较BT的面试题,哈哈!         关于什么是基元类型,我想并不是每一位开发者都清楚的,有部分的朋友只知道怎么在工作中应用它(例如int,string)。如果一...
http://www.asp888.net 豆腐技术站 我们以前在C++中曾经知道C++中有函数重载的概念,现在在ASp.Net的C#中我们仍然可以使用函数重载的 概念和定义: 假设我们在程序中定义了两个函数:String test(String str1) 而后 int test1(int i),他们的内容都是很 简单的功能 String test(String str1){ Response.Write("函数重载测试,这个是String函数"...
有些书上也称“代表”或“委托”。      C#中取消了指针的概念。对指针恋恋不舍的程序员可以有两种解决方法:声明“非安全”(unsafe)代码段然后在其中使用指针或者使用C#的一个引用类型——“代理”(delegate)。“代理”相当与C中的函数指针原型,区别是C#是类型安全 的。 查看更多精彩>>