标题:请问输出参数和引用参数的区别
只看楼主
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



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-22884-1-1.html




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

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