| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 770 人关注过本帖
标题:请问输出参数和引用参数的区别
只看楼主 加入收藏
Benjamin
Rank: 1
等 级:新手上路
帖 子:31
专家分:0
注 册:2005-7-11
收藏
 问题点数:0 回复次数:2 
请问输出参数和引用参数的区别
请问输出参数和引用参数的区别:

到底什么时候用 out 什么时候用 ref??

我刚学C#,看到书上有两个例子,一个是用out,一个是用ref

1st:
class List
{
    public static void Main()
    {
          int  MyInteger;
          List  MyObject;

          MyObject=new List();
          MyObject.CallMethod(out MyInteger);
          System.Console.WriteLine(MyInteger);
    }
   
    void  CallMethod(out int Integer1)
    {
             Integer=7;
    }
}

[此贴子已经被作者于2005-7-14 17:07:29编辑过]


搜索更多相关主题的帖子: 参数 输出 
2005-07-14 17:04
Benjamin
Rank: 1
等 级:新手上路
帖 子:31
专家分:0
注 册:2005-7-11
收藏
得分:0 
2nd:
class List
{
    public static void Main()
    {
          int  MyInteger;
          List  MyObject;

          MyObject=new List();
          MyInteger=3;
          System.Console.WriteLine(MyInteger);

          MyObject.CallMethod(ref MyInteger);
          System.Console.WriteLine(MyInteger);
    }
   
    void  CallMethod(ref int Integer1)
    {
             Integer=7;
    }
}

小弟是新手,请各位哥哥姐姐帮忙! 吾将不胜感激……
2005-07-14 17:09
houyunqing
Rank: 1
等 级:新手上路
帖 子:476
专家分:0
注 册:2005-4-1
收藏
得分:0 
ref是(out\in)双重模式
做为参数时,若ref的变量是实值类型,变量需要初始化
就是你传给方法一个变量,方法直接拿这你这个变量进行操作,没有任何复制的动作(其实对于参考类型,ref是没有必要的,因为参考变量本身就是以址传值)
说得太复杂了。。。配合例子吧~
public static void Main()
{
int i;
MethodA(i);//错误!只声明,没有初始化
i=111;
MethodA(ref i);//OK不需要进行其他动作,i的值已经被MethodA改变了!
Console.WriteLine(i.ToString());//432;

int ii;
MethodB(out ii);//OK!在使用out时,因为方法B可以初始化ii,也可以直接修改ii的值
Console.WriteLine(ii.ToString());//321
}
public static void MethodA(ref int i)
{
i+=321;
}
public static void MethodB(out int i)
{
i=321;
}

不清楚问我就是

寻求挑战,追求完美 Oh,my god!
2005-07-15 22:06
快速回复:请问输出参数和引用参数的区别
数据加载中...
 
   



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

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