C# 中的 Ref int 问题
Posted
技术标签:
【中文标题】C# 中的 Ref int 问题【英文标题】:Ref int question in C# 【发布时间】: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)”的最佳重载方法匹配有一些无效参数
【问题讨论】:
您是否要增加文字0
的值?将文字作为 ref
传递是没有意义的。
Why use the 'ref' keyword when passing an object?的可能重复
@JimFell 这是一个单独的问题。
【参考方案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 );
【讨论】:
以上是关于C# 中的 Ref int 问题的主要内容,如果未能解决你的问题,请参考以下文章