与声明function.form1.userseqq的变量冲突

时间:2014-03-21 18:54:19

标签: c#

当我尝试运行以下脚本时,它会显示'userseqq' conflicts with declaration function.form1.userseqq,同时也会显示itemseqq

有什么想法吗? 谢谢

                int uid = Convert.ToInt32(txtbx_id.Text);
                int iid = Convert.ToInt32(txtbx_itemid.Text);
                for (int ywu = 0; ywu <= 92161; ywu++)
                {
                    int rwer = d[ywu];
                    if (rwer == uid)
                    {
                        int userseqq = ywu;
                    }
                }
                for (int yuyu = 0; yuyu <= 1258038; yuyu++)
                {
                    int er = d[yuyu];
                    if (er == iid)
                    {
                        int itemseqq = yuyu;
                    }
                }
                dotproduct(userseqq, itemseqq); //<--------the error line
                MessageBox.Show("The Score of item id " + itemseqq + " is " + result);
            }

3 个答案:

答案 0 :(得分:0)

首先,这不起作用,因为userseqqitemseqq对于您调用dotproduct()方法的代码行不可见。

为什么要在if语句中声明这些变量?

答案 1 :(得分:0)

由于itemseqq和userseqq在{}语句内部声明,因此当你尝试使用它们时它们都不在范围内。

尝试将两个声明放在代码的顶部,如:

int iid;
int iid;
int itemseqq;
[...]

编辑:如果您之前声明它们,请删除if语句中的int关键字。

答案 2 :(得分:0)

回应你的评论:

  

我在代码的开头将它们声明为公共整数

那么你不应该在你的方法中重新声明它们。你这样做的地方:

if (rwer == uid)
{
    int userseqq = ywu;
}

您正在声明userseqq变量的全新实例,进行设置,然后放弃它。我有点惊讶编译器抛出错误,但我想编译的IL中的变量范围可能略有不同。无论如何,错误至少可以防止不使用正确变量的错误。

要使用您的班级变量,请不要重新声明:

if (rwer == uid)
{
    userseqq = ywu;
}

itemseqq变量也是如此。)