2012-08-30 131 views
2

我有我的代碼循環使用,但它顯示使用未分配的本地變量的錯誤。使用未分配的本地變量

這裏是我的代碼:

public List<CustomTypeLayer.EmployeeLeave> GetLeaveRecord(int emplid) 
{ 
    DataSet ds = objLMSRepository.GetLeaveRecord(emplid); 
    List<EmployeeLeave> leavelist = new List<EmployeeLeave>(); 
    if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0) 
    { 
     for (int k; k < ds.Tables[0].Rows.Count; k++) 
     { 
      DataRow dr = ds.Tables[0].Rows[k]; 
      EmployeeLeave leave = new EmployeeLeave(); 
      leave.DateFrom = Convert.ToDateTime(dr["dt_from"]); 
      leave.DateTo = Convert.ToDateTime(dr["dt_to"]); 
      leave.EmployeeId = Convert.ToInt32(dr["EmployeeID"]); 
      leave.Reason = Convert.ToString(dr["txt_reason"]); 
      leave.LeaveType = (LeaveReason)Enum.Parse(typeof(LeaveReason), dr["id_leave_type"].ToString(), true); 
      leavelist.Add(leave); 
     } 
    } 
    return leavelist; 
} 

的錯誤是在for循環中k。你可以看到for循環我已經初始化kint k

+0

add int k = 0;好吧 – MMK

回答

3

你需要給k初始值,如

for (int k = 0; k < someValue; k++) 
{ 
    // Do stuff. 
} 

我希望這有助於。

+0

感謝它現在初始化:) –

+0

好。很高興我能幫上忙... – MoonKnight

6

不,你沒有初始化k值,你剛剛宣佈變量k爲索引器。

正確的語法來初始化一個正常的for循環的索引是關於環

2

您還沒有初始化k處的以下

for (int k = 0; k < ds.Tables[0].Rows.Count; k++) 
{ 
    ...... 
} 

See MSDN引用。你有就是吧,不過初始化了吧。改變你的for循環:

for(int k = 0; k < ds.Tables[0].Rows.Count; k++) 
{ 
    //... 
} 
2

初始化實際上是爲變量添加一個初始值。 嘗試在for循環中添加int k = 0,你應該沒問題。

2

k需要有一個初始值。

它應該閱讀:

for(int k = 0; k < ds.Tables[0].Rows.Count; k++) 
0

需要初始化ķ。在for循環中寫入k=0

相關問題