A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 孙亚雄 中级黑马   /  2012-8-14 14:08  /  1804 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

迷糊。。。

评分

参与人数 1技术分 +1 收起 理由
郑文 + 1

查看全部评分

3 个回复

倒序浏览
class Test
{

 static void outTest(out int x, out int y)
 {
  //x和y都清空了,需要重新赋值,即使调用函数前赋过值也不行
  x = 3;
  y = 7;
 }

 static void refTest(ref int x, ref int y)
 {
  x = 9;
  y = x;
 }

 public static void Main()
 {
  //out test
  int a,b;
  //out情景1:使用前,变量可以不赋值
  outTest(out a, out b);
  Console.WriteLine("a={0};b={1}",a,b);
      //out情景2:使用前,变量可以赋值
  int c=55,d=33;
  outTest(out c, out d);
  Console.WriteLine("c={0};d={1}",c,d);

     //ref使用前,变量必须赋值
  int o=99,p=77;
  refTest(ref o, ref p);
  Console.WriteLine("o={0};p={1}",o,p);
 }

}

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
用ref 修饰的参数在传入数值的之后一定要有初始化的值,
而out 修饰的参数在传入的时候 可以传入没有初始化的变量名   但是返回时必须有参数

评分

参与人数 1技术分 +1 收起 理由
郑文 + 1

查看全部评分

回复 使用道具 举报
out:当返回值不是一个的时候,可以使用out,out可以将方法中的值传给调用方法的参数,和普通参数一样,是单向的,只是方向刚好相反;
ref:这个参数类型更偏向于双向传值,即可以传参数值,也可以返回参数值;

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马