2011-06-03 76 views
0

我是C#/ OOP的新手,並且正在將現有的應用程序轉換爲.net 4.0框架。我的變量應該聲明爲什麼類型?

我的代碼如下:

Class abc 
     private IList<string[]> GetReportBatchList() 
     { 
      List<string[]> rowList = new List<string[]>(); 

      SqlParameter[] prm = { new SqlParameter("@rpt_doc_type_id", SqlDbType.Int, 9) }; 
      prm[0].Value = 101; 

      try 
      { 
     ..... 
     ..... 
     ..... 
      } 

      return rowList; 
     } 

class xyz 

using abc; 

     Private Function GenerateReport() 
      Try 
     { 
       Dim rptBatchList As ?????? 
       rptBatchList = GetReportBatchList() 
       While rptBatchList.Read() 
     ...... 
     ...... 
     ...... 
     } 
     catch 
     { 
     ...... 
     } 

應該rptBatchList聲明爲何種類型?

+0

'私有IList GetReportBatchList()'確定好像它有非常非常清晰的提示。 「IList 」的哪個部分讓你感到困惑? – 2011-06-03 10:21:41

回答

0

由於GetReportBatchList()的返回值具有IList類型的字符串,因此rptBatchList應該是相同的類型。

0

嗯......這是關於正確返回類型的問題,還是關於將C#翻譯成VB.Net的問題?

根據你的函數定義,rptBatchList將是IList<string[]>類型 - 明顯聲明爲VB.Net的正確語法。除此之外,因爲它是一個字符串數組列表,所以它沒有Read()函數,所以也許你正在尋找一些來自DbDataReader的東西(比如SqlDataReader)?如果你打算堅持使用當前的定義,那麼你可以使用一個foreachfor環比列表中的元素進行迭代,或者你可以使用LINQ的擴展和使用是這樣的:雖然可以

rptBatchList.ForEach(z => { z.ForEach(x => doSomethingWithThisResultString(x)); }); 

亂得快 - 你可能想要堅持幾個嵌套的foreach循環。

0

你的第二個例子是VB,但你說你正在使用C#,所以......

對於C#這將是IList<string[]>

我的VB有點生疏,但我認爲它會是IList(Of String())

相關問題