Массив sqlParameters в VB.Net

Я пытаюсь создать массив параметров типизированного размера в VB.Net:

Dim parameters() As SqlParameter = New SqlParameter() _
        {
          New SqlParameter("@first_name", SqlDbType.VarChar, 50) {Value = "john"},
          New SqlParameter("@last_name", SqlDbType.VarChar, 50) {Value = "doe"},
          New SqlParameter("@age", SqlDbType.Int) {Value = 18},
          New SqlParameter("@id", SqlDbType.Int) {Value = 123}
        }

Но В.С. говорит: "Ценность" не объявлена. Он может быть недоступен из-за его уровня защиты

Что не так с кодом выше?

Спасибо!


person Fabio Belz    schedule 17.04.2013    source источник


Ответы (1)


Вам нужно использовать синтаксис VB для инициализаторов объектов:

Dim parameters() As SqlParameter = New SqlParameter() _
        {
          New SqlParameter("@first_name", SqlDbType.VarChar, 50) With { .Value = "john"},
          New SqlParameter("@last_name", SqlDbType.VarChar, 50) With { .Value = "doe"},
          New SqlParameter("@age", SqlDbType.Int) With { .Value = 18},
          New SqlParameter("@id", SqlDbType.Int) With { .Value = 123}
        }
person Kenneth    schedule 17.04.2013
comment
Синтаксис в VB.NET беспорядок, поэтому я бы никогда не инициализировал массив таким образом. Вместо этого я бы создавал параметры один за другим, устанавливал значения, а затем добавлял их в массив (например, {param1,param,...}. - person Tim Schmelter; 18.04.2013
comment
Почему беспорядок? Это просто отличается от С#. Не поймите меня неправильно, я тоже предпочитаю С#, но не вижу в этом ничего плохого. - person Kenneth; 18.04.2013
comment
Потому что не читается. Является ли это массивом, является ли это объектом, есть ли вложенный массив или есть инициализация или просто свойство, мне нужно _ для объединения двух строк или нет, где разрешены фигурные скобки, мне нужно With или From, сделать я должен использовать точку или запятую или нет? Гораздо читабельнее не использовать эту однострочную строку. - person Tim Schmelter; 18.04.2013
comment
Думаю, это просто вопрос привыкания. Я некоторое время пользовался VB и, честно говоря, довольно быстро к нему привык. В любом случае, у каждого свое мнение, давайте не будем захватывать эту ветку, чтобы говорить о VB ‹=› c#. Ваше здоровье! - person Kenneth; 18.04.2013