Вопрос

В моем нынешнем проекте каждый называет переменные и методы после того, что они есть и что они делают. Это хорошо для быстрого понимания кода, но с большим количеством длинных изменений приходит несколько головных болей, таких как при копировании набора данных на объект / объект. Итак, пока вы понимаете код, читабельность все еще принимает удар.

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
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top