查看: 1816|回复: 4
打印 上一主题 下一主题

[其他] C# ref和out的用法及区别

[复制链接]

2317

主题

54

听众

2万

积分

资深设计师

Rank: 7Rank: 7Rank: 7

纳金币
20645
精华
62

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

跳转到指定楼层
楼主
发表于 2014-9-26 04:07:09 |只看该作者 |倒序浏览

  1. class Program
  2.     {
  3.        //ref 和out类似c++指针,当然也不能拿来直接当指针用,是能引用一些参数,但是不能直接作为地址来控制参数(大概意思)
  4.         static void Main(string[] args)
  5.         {
  6.             int a, b;
  7.             OutTest(out a, out b);
  8.             Console.WriteLine("a={0},b={1}",a,b);
  9.             //output a = 1;b = 2;

  10.             int c = 11, d = 22;
  11.             OutTest(out c, out d);
  12.             Console.WriteLine("a={0},b={1}", a, b);
  13.             //output c = 1;d = 2;

  14.             int m = 11, n = 22;
  15.             //RefTest(ref m, ref n);
  16.             RefTest(ref m, ref n);
  17.             Console.WriteLine("m={0},n={1}", m, n);
  18.             //output m = 22;n = 11;

  19.             Swap(m, n);
  20.             Console.WriteLine("m={0},n={1}", m, n);
  21.             //output m = 22;n = 11;
  22.         }

  23.         static void OutTest(out int x, out int y)
  24.         {
  25.             //方法体外可以不用对传出参数赋值
  26.             //方法体内,必须对传出的参数赋值,否则报错,例如:x=y;
  27.             //适用于多个返回值的函数
  28.             x = 1;
  29.             y = 2;
  30.         }

  31.         static void RefTest(ref int x, ref int y)
  32.         {

  33.             //方法体外,必须对参数赋值,否则报错
  34.             //方法体内,ref对参数可以赋值也可以不赋值
  35.             //适合引用原值,并对原值修改
  36.             int temp = x;
  37.             x = y;
  38.             y = temp;
  39.         }

  40.         static void Swap(int a, int b)
  41.         {
  42.             int temp = a;
  43.             a = b;
  44.             b = temp;
  45.         }
  46.     }
复制代码
分享到: QQ好友和群QQ好友和群 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
转播转播0 分享淘帖0 收藏收藏0 支持支持0 反对反对0
回复

使用道具 举报

3

主题

1

听众

6189

积分

高级设计师

Rank: 6Rank: 6

纳金币
370
精华
0

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

沙发
发表于 2014-9-26 08:52:50 |只看该作者
MARK,技术贴
回复

使用道具 举报

Tanix    

0

主题

1

听众

62

积分

设计初学者

Rank: 1

纳金币
21
精华
0
板凳
发表于 2014-9-28 20:33:15 |只看该作者
谢谢楼主分享,顶一个!
回复

使用道具 举报

0

主题

2

听众

1346

积分

助理设计师

Rank: 4

纳金币
505
精华
0
地板
发表于 2014-9-28 21:28:47 |只看该作者
感谢王者再临指导
回复

使用道具 举报

hyui    

1

主题

2

听众

6671

积分

高级设计师

Rank: 6Rank: 6

纳金币
2715
精华
0

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

5#
发表于 2014-10-2 22:26:20 |只看该作者
Great share  code !
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

手机版|纳金网 ( 闽ICP备2021016425号-2/3

GMT+8, 2024-11-29 13:41 , Processed in 0.107365 second(s), 27 queries .

Powered by Discuz!-创意设计 X2.5

© 2008-2019 Narkii Inc.

回顶部