回 帖 发 新 帖 刷新版面

主题:大伙看看这段代码!

小弟是最后刚学C#的,用的工具是VS2003,现有我在书上看到C#函数中支持当形参为值参数量能改变实参值.这是我写的代码:
class Class1
{
  static void sum(ref int i)
   {
     int sum=i+10;
     Console.WriteLine("通过函数计算出的和为:{0}",sum);
   }
    
        /// <summary>
        /// 应用程序的主入口点。
        /// </summary>
        [STAThread]
      static void Main(string[] args)
    {
            //
            // TODO: 在此处添加代码以启动应用程序
            //
    int i=15;
    Console.WriteLine("在调用函数之前的i值为:{0}",i);//这里输的了I值为15,这是正确的.
    sum(ref i);
           Console.WriteLine("在调用函数之后,现在i值为:{0}",i);//但是这里输出的I值却为15,根本就没有变成25,这是为什么,是不是跟开发工具有关系?请各位指点.
}
    }
}

回复列表 (共2个回复)

沙发

很正常,i的但是没有改变的,把int sum=i+10
改为i+=10应该有改变

板凳


ref是可以改变参数值的
但是在sum()方法中,变量i只是用来给sum赋值的,i的值并没有改变啊。
把下列代码修改
int sum=i+10;
改成
i+=10;
这样,你在入口的Main函数中,输出才会是25哦

我来回复

您尚未登录,请登录后再回复。点此登录或注册