C#中ref和out的使用小结

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

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

【 tulaoshi.com - 编程语言 】

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

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

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

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

  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); }}

来源:http://www.tulaoshi.com/n/20160219/1608961.html

延伸阅读
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#是类型安全 的。
标签: Web开发
    在C#中,程序采用了的驱动采用了事件驱动而不是原来的消息驱动,虽然.net框架提供的事件已经十分丰富,但是在以前的系统中定义了丰富的消息对系统的编程提供了方便的实现方法,因此在C#中使用消息有时候还是大大提高编程的效率的。 1 定义消息 在c#中消息需要定义成windows系统中的原始的16进制数字,比如 const in...
控制结阅与过程编程清浪冲天 马敬发 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。 做为程序员,...