VB.NET Вложено с заявлениями из разных областей - PullRequest
1 голос
/ 12 июля 2011

Мне интересно, возможно ли это?У меня есть таблица списка (lstTable), которая находится в той же форме, которую я пытаюсь заполнить информацией из публичной структуры (ELEM_DATA).Я понимаю, что вложенные операторы будут работать, если они находятся в той же области действия, но как я могу сделать это с примером 2 ниже:

Пример 1:

With me.lstTable.Items(RECORD)
     .SubItems(1).text = ELEM_DATA(RECORD).name
     .SubItems(2).text = ELEM_DATA(RECORD).number
end with

Пример 2:

With me.lstTable.Items(RECORD)
     With ELEM_DATA(RECORD)
     .SubItems(1).text = .name
     .SubItems(2).text = .number
     end with
end with

Я не знал, возможно ли это или это будет так же просто, как изменить (.name) на что-то другое.

1 Ответ

2 голосов
/ 12 июля 2011

Работает с вложенными операторами (см. Комментарий о конфликтах).К сожалению, вы не можете использовать внешние элементы внутри с.Но поскольку ваш внешний WITH является типом ссылки, вы можете использовать локальную переменную для его псевдонима, как вы предлагаете в своем комментарии.

Dim l = me.lstTable.Items(RECORD) ' requires 2008 and option infer
With ELEM_DATA(RECORD)
   l.SubItems(1).text = .name
End With

Вот ссылка, показывающая, как могут использоваться вложенные операторы WITH.

http://ideone.com/agjne

...