Какого типа должна быть объявлена ​​моя переменная? - PullRequest
0 голосов
/ 03 июня 2011

Я новичок в C # / OOP и работаю над преобразованием существующего приложения в .net 4.0 framework.

Мой код выглядит следующим образом:

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?

Ответы [ 3 ]

0 голосов
/ 03 июня 2011

Хммм ... это вопрос о правильных типах возврата или вопрос о переводе C # в VB.Net?

Согласно имеющемуся у вас определению функции, rptBatchList будет иметь тип IList<string[]> - явно объявленный в правильном синтаксисе для VB.Net.

В дополнение к этому, поскольку это список строковых массивов, у него нет функции Read (), так что, возможно, вы искали что-то, производное от DbDataReader (например, SqlDataReader)? Если вы намерены придерживаться текущего определения, то вы можете использовать цикл foreach или for для перебора элементов списка, или вы можете использовать расширения Linq и использовать что-то вроде этого:

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

хотя это может быстро запутаться - вы, вероятно, хотите просто придерживаться пары вложенных циклов foreach.

0 голосов
/ 03 июня 2011

Ваш второй пример VB, но вы говорите, что используете C #, поэтому ...

Для C # это будет IList<string[]>.

Мой VB немного ржавый, ноЯ думаю, что это будет IList(Of String()).

0 голосов
/ 03 июня 2011

Поскольку возвращаемое значение GetReportBatchList () имеет IList типа string, имеет смысл, что rptBatchList должен быть того же типа.

...