int cnt = 0;
int wayListNums;
foreach (TableRow tr in allVisibleRows)
{
SPListItem itemAdd = wayList.Items.Add();
if (cnt == 0)
{
wayListNums = itemAdd.ID;
}
itemAdd["wayNum"] = "WayBill № " + " " + wayListNums;
...................
这是以下错误:
错误1使用未分配的本地变量' wayListNums' ....
答案 0 :(得分:2)
这里的问题是wayListNums在声明时没有默认值。稍后你只在if块中设置它的值,所以如果没有执行if,那么变量将保持未分配状态,就像错误告诉你的那样。
所以你有两个选择:
int wayListNums = 0;
//代码
if (cnt == 0)
{
wayListNums = itemAdd.ID;
}
else
{
wayListNums = somethingElse;
}
答案 1 :(得分:0)
编译器不确定集合allVisibleRows
中的值有时可能为null或为空(仅当集合非空时变量获取值以及if (cnt == 0)
计算结果为true 。)在这种情况下,wayListNums
的值是未知的。这就是警告的原因。要解决此问题,请在使用前初始化变量:
int wayListNums=0;// or some other value
如果其他条件失败,将使用默认值。
答案 2 :(得分:0)
您必须为本地变量指定默认值..错误表明它未分配。
这里int wayListNums = 0;// because of int default value 0
答案 3 :(得分:0)
在C#和其他类似语言中,编译器期望在使用之前初始化每个变量的值。在您的情况下,编译器不确定if-block
中初始化的值是否始终初始化,并且由于您在if-block
范围之外使用它,编译器只会给出一个错误,即该值未初始化。只需设置
int wayListNums = 0;
将解决问题。
答案 4 :(得分:0)
为int赋值
int wayListNums = 0;