В отличие от «встроенной» части этого, два набора кода не будут компилироваться в одно и то же. Проблема приходит с:
Dim dtLookupCode As New LookupCodeDataTable()
Dim taLookupCode AS New LookupCodeTableAdapter()
В VB это создаст новые объекты с соответствующими именами ссылок. Вслед за:
dtLookupCode = taLookupCode.GetDataByCodeAndValue("EmpStatus", "FULL")
Мы немедленно заменяем исходную ссылку dtLookupCode
новым объектом, который создает мусор для сбора (недоступный объект в ОЗУ).
Следовательно, в точном, оригинальном сценарии то, что называется «встроенной» техникой, является технически , более производительным. (Однако вряд ли вы физически увидите эту разницу в этом небольшом примере.)
Место, где код по существу будет таким же, если исходный пример читается следующим образом:
Dim taLookupCode AS New LookupCodeTableAdapter
Dim dtLookupCode As LookupCodeDataTable
Dim strDescription As String
dtLookupCode = taLookupCode.GetDataByCodeAndValue("EmpStatus", "FULL")
strDescription = dtLookupCode.Item(0).Meaning
В этом мире у нас есть только существующие ссылки, и мы не создаем ненужные объекты. Я немного переупорядочил утверждения для удобства чтения, но суть та же. Кроме того, вы можете легко инициализировать ссылки одной строкой с помощью чего-то подобного и иметь ту же самую базовую идею:
Dim taLookupCode AS New LookupCodeTableAdapter
Dim dtLookupCode As LookupCodeDataTable = taLookupCode.GetDataByCodeAndValue("EmpStatus", "FULL")
Dim strDescription As String = dtLookupCode.Item(0).Meaning