Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/301.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从方法中的ArrayList递增整数';不行? 字符串popIt(System.Collections.ArrayList pool,ref int spin)/“EMPTY”/str++/“结束” { 如果(pool.Count==0) {返回“空”;} 其他的 { if(spin_C# - Fatal编程技术网

C# 从方法中的ArrayList递增整数';不行? 字符串popIt(System.Collections.ArrayList pool,ref int spin)/“EMPTY”/str++/“结束” { 如果(pool.Count==0) {返回“空”;} 其他的 { if(spin

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"

这不会增加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"; }
        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;