Почему Visual Basic IDE прекратил заполнять оставшуюся часть свойства при создании нового свойства в Visual Studio 2010? - PullRequest
1 голос
/ 05 ноября 2011

По какой-то причине, когда я создаю новое свойство в Visual Basic .NET в Visual Studio 2010, остальные свойства (шаблон?) Не завершают базовую структуру свойства в редакторе кода. Теперь он рассматривает утверждение как:

Public Property Length() As Integer

Вместо того, чтобы завершить свойство, как раньше (код следует), оно просто переходит к следующей строке:

Public Property Length() As Integer
    Get

    End Get
    Set(ByVal value As Integer)

    End Set
End Property

Что происходит сейчас, так это то, что, если я введу код «Конечное свойство», имя свойства теперь будет выделено как ошибка, поскольку оно не имеет части «Получить» или «Установить».

Однако, когда я ТОГДА набираю «Get» в строке, следующей за «Public Property Length () As Integer», баланс свойства создается в коде автоматически.

Я не знаю, как это изменилось, но хотел бы изменить это обратно.

Кто-нибудь знает, есть ли в VS2010 параметр, который решает эту проблему, или это что-то с базовыми шаблонами, которые Visual Studio использует для создания базовых компонентов кода?

Странная вещь в том, что для всего остального, от объявлений классов, структур, функций и подпрограмм, IDE по-прежнему правильно создает баланс структуры кода. Единственная область, где это не так, - объявления недвижимости.

Заранее благодарим за любую помощь!

Кевин

Ответы [ 2 ]

4 голосов
/ 05 ноября 2011

VB.NET версии 10 имеет автоматически реализованные свойства .

Это немного синтаксического сахара , который предназначен для простых свойств (те, которые только получают / устанавливаютЗначения поля и ничего больше) позволяют пропустить части Get / Set и поле (эти do генерируются компилятором).

1 голос
/ 05 ноября 2011

Поскольку Одед упомянул , это потому, что VB 10 теперь позволяет вам просто иметь:

Public Property Length() As Integer

, и он будет автоматически реализован как:

Private _length As Integer
Public Property Length() As Integer
    Get
        Return _length
    End Get
    Set(ByVal value As Integer)
        _length = value
    End
End Property

Это то же самое, что синтаксис C #, позволяющий вам иметь:

public int Length { get; set; }

Таким образом, с точки зрения IDE, не нужно для генерации всего этого кода, так как компилятор по существу будеттот, кто делает это.

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

Я Полагаю вы все еще можете выполнить то, что вы после использования фрагментов кода.Visual Studio имеет кучу таких.Последнее, что я проверил, набрав «Опора» и попав на вкладку, все равно создам все вышеперечисленное.Я могу ошибаться в этом (на данный момент не на машине с Windows);но даже если это так, вы сможете создать свой собственный фрагмент кода, который сгенерирует шаблон, который вы хотите.

Вернемся к вашему вопросу "Почему?"однако: я думаю, что команда IDE сделала правильный выбор здесь.Учитывая, что VB 10 поддерживает поддержку автоматически внедряемых свойств (в лучшую или худшую сторону), разработчики будут очень разочарованы, если каждый раз, когда им понадобится автоматически внедряемое свойство, среда IDE автоматически генерирует тонну шаблонного кода, который затемнужно удалить.Пойти другим путем, хотя это может быть раздражающим, кажется гораздо более разумным (особенно с учетом опции фрагмента кода, о которой я уже упоминал).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...