C# 变量与声明函数.form1.userseqq冲突

C# 变量与声明函数.form1.userseqq冲突,c#,C#,当我尝试运行下面的脚本时,它显示了'userseqq'与声明函数.form1.userseqq冲突,并且itemseqq也会发生冲突 有什么想法吗? 多谢各位 int uid = Convert.ToInt32(txtbx_id.Text); int iid = Convert.ToInt32(txtbx_itemid.Text); for (int ywu = 0; ywu <= 92161;

当我尝试运行下面的脚本时,它显示了
'userseqq'与声明函数.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);
            }
intuid=Convert.ToInt32(txtbx\u id.Text);
int iid=转换为32(txtbx_itemid.Text);

对于(int ywu=0;ywu首先,这不起作用,因为
userseqq
itemseqq
对调用
dotproduct()
方法的代码行不可见


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

因为itemseqq和userseqq是在if{}语句中声明的,所以当您尝试使用它们时,它们都超出了范围

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

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

编辑:如果您以前声明过,请删除If语句中的int关键字。

回应您的评论:


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

那么,您不应该在方法中重新声明它们。在执行此操作时:

if (rwer == uid)
{
    int userseqq = ywu;
}
您正在声明一个全新的
userseqq
变量实例,设置它,然后放弃它。我有点惊讶编译器抛出了这个错误,但我猜编译的IL中变量的范围可能略有不同。无论如何,这个错误至少防止了不使用正确变量的错误

要使用类级变量,请不要重新声明:

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

(变量
itemseqq
也是如此。)

根据您发布的代码,当您尝试调用
dotproduct()时,这两个值根本不在范围内
method。您在哪里定义了它们?我在代码开头声明它们为public integer,也@DavidI在代码开头声明它们为public integer,也@PaulG@user3446681这是您的问题,这就是冲突的根源。为什么重新声明它们?为什么不修改它们的值?非常感谢@弗洛特。