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这是您的问题,这就是冲突的根源。为什么重新声明它们?为什么不修改它们的值?非常感谢@弗洛特。