Продлен с ключевым словом в vb.net
-
27-09-2019 - |
Вопрос
В моем нынешнем проекте каждый называет переменные и методы после того, что они есть и что они делают. Это хорошо для быстрого понимания кода, но с большим количеством длинных изменений приходит несколько головных болей, таких как при копировании набора данных на объект / объект. Итак, пока вы понимаете код, читабельность все еще принимает удар.
veryLongVariableName.Id = datasetVeryLongVariableName.Id
veryLongVariablename.Something = datasetVeryLongVariableName.Something
etc.
Использование VB.NET с ключевым словом может помочь.
With veryLongVariableName
.Id = datasetVeryLongVariableName.Id
.Something = datasetVeryLongVariableName.Something
End With
Теперь, мой вопрос, есть ли способ использовать или что-то подобное, но для нескольких переменных одновременно? Что-то вроде:
With veryLongVariableName As a, datasetVeryLongVariableName as b
a.Id = b.Id
a.Something = b.Something
End With
Я все для описательных соглашений об именах, но они имеют тенденцию загромождать вещи. Особенно в VB!
Решение
Если код, который выполняет эти наборы заданий, является частью одного логического действия, вы можете ревертировать его в свой собственный метод / функцию. Хотя это не конкретно не отвечает на ваш вопрос о нескольких с использованием с использованием, он улучшит удовольствие в строках с предложениями, найденными в популярных книгах, таких как код.
Другие советы
Нет, это невозможно.
With
Работает только с одним объектом. Видеть MSDN.
Вы можете, однако, гнездо With
заявления (Хотя это не рекомендуется, так как вы можете в конечном итоге сделать ваш код действительно нечитаемым).
За кулисами, все With
Ключевое слово делает объявление временной переменной, которая ссылается на указанный вами объект. Его ссылки будут скомпилированы именно тот же код IL, что и полностью отборочное название объекта, поэтому отсутствует штраф производительности. Вы можете легко сделать это собой:
Dim a as MyClass = veryLongVariableName
Dim b as MyOtherClass = datasetVeryLongVariableName
a.Id = b.Id
a.Something = b.Something