| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 7207 人关注过本帖
标题:在C#中out是什么意思
只看楼主 加入收藏
zuglog2133
Rank: 1
等 级:新手上路
帖 子:26
专家分:5
注 册:2008-10-10
收藏
 问题点数:0 回复次数:6 
在C#中out是什么意思
在c#中out是什么意思,out在什么情况下用?
谢谢
搜索更多相关主题的帖子: 是什么意思 
2008-10-27 21:06
bygg
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:乖乖的心中
等 级:版主
威 望:241
帖 子:13555
专家分:3076
注 册:2006-10-23
收藏
得分:0 
[bo]转------->[/bo]

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

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

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

MSDN: http://msdn.(VS.80).aspx

[[it] 本帖最后由 bygg 于 2008-10-28 12:54 编辑 [/it]]

飘过~~
2008-10-27 21:16
righgrea
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2008-10-10
收藏
得分:0 
楼上的讲解很详细!赞一个。
2008-10-28 09:58
zsf2006
Rank: 1
来 自:博客园
等 级:新手上路
威 望:1
帖 子:315
专家分:0
注 册:2006-6-3
收藏
得分:0 
不愧为斑竹,顶个先!

光临我的博客:http://
2008-10-28 12:18
sunjinfei_god
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2008-10-29
收藏
得分:0 
回复 1# 的帖子
out可以在传入参数的时候可以初始化也可以不初始化,这样比较灵活,但灵活的另一面就是在调用形参为out的方法中必须要给变量赋值,这样但对增加了回调函数的负担,是有些区别的
2008-10-29 11:08
zuglog2133
Rank: 1
等 级:新手上路
帖 子:26
专家分:5
注 册:2008-10-10
收藏
得分:0 
谢谢
2008-10-29 17:51
dubaokun
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2010-4-14
收藏
得分:0 
讲的很彻底很好
2010-08-14 18:12
快速回复:在C#中out是什么意思
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018868 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved