C#中的ref int问题

时间:2011-08-10 13:53:53

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

简单地说,我使用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)'的最佳重载方法匹配有一些无效的参数

  

5 个答案:

答案 0 :(得分:16)

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

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

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

答案 1 :(得分:2)

Ref用于传递变量作为参考。但是你没有传递一个变量,你传递了一个值。

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

应该做的伎俩。

答案 2 :(得分:1)

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

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

答案 3 :(得分:1)

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

int i = 0;
NumberUp(ref i);

请阅读MSDN,了解有关 ref 关键字的详情。

答案 4 :(得分:1)

ref

NumberUp(ref number );