Используя Меня (VB.NET) ключевое слово - требуемый или нет?

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

В коде это будет выглядеть так:

logger.setadditivity(false);
12
задан KG Sosa 9 January 2009 в 07:47
поделиться

5 ответов

Из того, что я понимаю, это - просто предпочтение, но может снять неоднозначность между свойствами и локально ограниченными по объему переменными/параметрами. Некоторые люди включают его неукоснительно из привычки. Таким образом, если бы они должны были затем представить локальную переменную того же имени, ничто не повредилось бы.

Скажите, что Вам определили метод DoSomething(MyString As String) и класс также имеет a String названный MyString. Единственный способ сослаться на версию класса MyString должен использовать Me.MyString. Таким образом Вы говорите Me.MyString = MyString и компилятор знает то, что Вы хотите.

16
ответ дан 2 December 2019 в 05:28
поделиться

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

Private theString As String

Private Sub Setup(ByVal theString As String)
   Me.theString = theString
End Sub

Это приносит вещи в корректный контекст, чтобы позволить присвоениям быть выполненными правильно.

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

6
ответ дан 2 December 2019 в 05:28
поделиться

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

Ключевое слово Меня используется любое время, которое мы хотим, чтобы наш код отослал к участникам (методы, свойства...) в текущем объекте. Я ключевое слово походит на это ключевое слово в C++ и языках C#. Я ключевое слово является обычно дополнительным, начиная с любого вызова метода, как предполагается, относится к текущему объекту, если явно не отмечено иначе.

Исключение - при использовании затененных переменных. Затененная переменная является переменной на уровне процедуры с тем же именем как переменная класса. Например:

Public Class ExampleClass

  Private FirstName As String

  Public Sub ExampleMethod()
    Dim FirstName As String
    FirstName = "Stefan"
  End Sub

End Class

Переменный FirstName объявляется на уровне класса и в рамках метода ExampleMethod. В ExampleMethod только используется локальное, или затененный, переменный, если мы явно не ссылаемся на переменную уровня класса со Мной ключевое слово:

Public Class ExampleClass

  Private FirstName As String

  Public Sub ExampleMethod()
    Dim FirstName As String
    FirstName = "Stefan"
    Me.FirstName = "Carl Gustav"
  End Sub

End Class
3
ответ дан 2 December 2019 в 05:28
поделиться

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

Однако, если Вы имеете контроль на форме с тем же именем как другой объект в другом импортированном пространстве имен, это может быть важно.

1
ответ дан 2 December 2019 в 05:28
поделиться

Я думаю для средств управления UI предпочтение его очень пользователя.

Но я сильно предпочитаю использование "Меня" особенно, если Вы используете свойства класса на всякий случай существует некоторый код, который должен быть выполнен перед доступом к той переменной.

Пример

Class Sample
       Private myString as String

       Public Property GetMyString As String
       Get
          ' Some code here which sets the string after reading value from the  database
       End Get
       Set
       End Set

       End Property        
End Class

В этом случае существует различие между использованием его с или без "Меня" ключевое слово.

1
ответ дан 2 December 2019 в 05:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: