大家好我对If语句有疑问。我哪里错了?

 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'...。

最佳答案

这里的问题是,当声明时,wayListNums没有默认值。稍后,您仅在if块中设置它的值,因此,如果未执行,变量将保持未分配状态,就像错误告诉您的那样。

因此,您有2个选择:


在声明时为wayListNums分配一些值。


int wayListNums = 0;


确保在访问变量之前,每个代码分支都会为该变量分配一些值:


//码

if (cnt == 0)
   {
      wayListNums = itemAdd.ID;
   }
 else
   {
      wayListNums = somethingElse;
   }

关于c# - C#-IF语句中的变量错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36881374/

10-11 01:44