【问题标题】:Ref int question in C#C# 中的 Ref int 问题
【发布时间】:2011-10-24 03:00:30
【问题描述】:

简单地说,我正在使用一个while循环来重复一个方法,并且每次运行该方法时,int“i”都会增加1。虽然我在调用“NumberUp”方法时遇到了麻烦。错误输出如下。

主要方法:

while (true)
{
    NumberUp(0);
}

NumberUp 方法:

public static void NumberUp(ref int i)
{
    i++;
    System.Console.WriteLine(i);
}

我不断收到以下错误:

“ConsoleApplication2.Program.NumberUp(ref int)”的最佳重载方法匹配有一些无效参数

【问题讨论】:

标签: c# .net pass-by-reference


【解决方案1】:

要调用带有ref 参数的方法,您需要传递一个变量,并使用ref 关键字:

int x = 0;
NumberUp(ref x);
//x is now 1

这会将引用传递给x 变量,从而允许NumberUp 方法将新值放入变量中。

【讨论】:

    【解决方案2】:

    Ref 用于将变量作为引用传递。但是你不是在传递一个变量,你是在传递一个值。

     int number = 0;
     while (true)
     {
          NumberUp(ref number );
     }
    

    应该做的伎俩。

    【讨论】:

      【解决方案3】:

      一个ref参数需要ref传递,需要一个变量:

      int i = 0;
      while (true)
      {
          NumberUp(ref i);
      }
      

      【讨论】:

      • 现在这太愚蠢了!在循环外声明i
      【解决方案4】:

      您必须将0 作为引用传递给包含0 的变量,例如:

      int i = 0;
      NumberUp(ref i);
      

      在 MSDN 上阅读此处以了解有关 ref 关键字的更多信息。

      【讨论】:

      • 措辞不好。您需要传递对包含0 的变量的引用。
      【解决方案5】:

      ref

      NumberUp(ref number );
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-01-13
        • 1970-01-01
        • 1970-01-01
        • 2012-09-14
        • 1970-01-01
        • 1970-01-01
        • 2019-09-24
        • 2014-03-03
        相关资源
        最近更新 更多