C# 从方法中的ArrayList递增整数';不行? 字符串popIt(System.Collections.ArrayList pool,ref int spin)/“EMPTY”/str++/“结束” { 如果(pool.Count==0) {返回“空”;} 其他的 { if(spin
这不会增加ArrayList微调器中的int spiners[0],它只会增加方法中的spin,就像VB.NET ByVal一样。我尝试使用ref关键字,但出现了一些错误,如何做到这一点?所以您可以这样做:C# 从方法中的ArrayList递增整数';不行? 字符串popIt(System.Collections.ArrayList pool,ref int spin)/“EMPTY”/str++/“结束” { 如果(pool.Count==0) {返回“空”;} 其他的 { if(spin,c#,C#,这不会增加ArrayList微调器中的int spiners[0],它只会增加方法中的spin,就像VB.NET ByVal一样。我尝试使用ref关键字,但出现了一些错误,如何做到这一点?所以您可以这样做: string popIt(System.Collections.ArrayList pool,ref int spin) //"EMPTY"/str;++/"OVER" { if (pool.Count == 0) { return "EMPTY"
string popIt(System.Collections.ArrayList pool,ref int spin) //"EMPTY"/str;++/"OVER"
{
if (pool.Count == 0)
{ return "EMPTY"; }
else
{
if (spin < pool.Count) { spin += 1; return pool[spin - 1].ToString(); }
else { return "OVER"; }
}
}
popIt(pools[0], spiners[0]);
如果我正确理解您的需要,这将起作用。为什么要使用ArrayList?它们是.NET1.1遗留下来的,并不是真正用于新的开发。你似乎知道如何在VB.NET中做你想做的事情,你能编辑你的问题来显示你在VB中想做什么吗?要更改旋转值,你需要使用“out”关键字。@Gleb看他正在做的最后一行代码
popIt(pools[0],spiners[0])
问题在于微调器
集合的元素0处的对象在更新其函数中的值时没有更新<代码>输出不能解决这个问题。我不知道斯科特·张伯伦有什么不清楚的地方,但我会解释的。我有几个动态添加到池中的池,以及相同数量的微调器,也动态添加到微调器中,因此我可以获得一个参数,如:pools[I][spiners[I]],并将其提供给函数。它给我一个错误与“blablabla”匹配的最佳重载方法有一些无效参数。与VB byVal一样,它将创建变量int spin并为其指定spiners[0]的值。我希望它像VB byRef一样,创建spin,即指向spiners[0],而不是指向spiners[0]的副本
int spin=spiners[0];
popIt(pools[0], ref spin);
spiners[0]=spin;