2016-09-28 8 views
0

Один из наших исходных файлов состоит из тысяч примеров свойств, как это:Более короткая форма для объектов VB.net?

Friend Property ZipCode() As String 
    Get 
     Return GetDtaString(R, fldZipCode) 
    End Get 
    Set(ByVal Value As String) 
     SetDtaString(R, fldZipCode, Value) 
    End Set 
End Property 

R является строка в текстовом файле, fldZipCode столбец.

AutoProperties позволяет использовать компактную форму get/set, когда свойство отображает значение поддержки, но здесь это не так. Я пробовал различные комбинации двоеточий и все остальное, что мог, но похоже, что VB.net требует, чтобы все это было на отдельных строках?

Кто-нибудь знает, как сократить этот синтаксис?

+5

Поскольку это не просто свойство, это, вероятно, так же просто, как и получается. – LarsTech

+0

Поскольку это не просто свойство, я бы предпочел рассматривать его как два метода в моем коде, поэтому я знаю, что это процессы, а не просто данные, содержащие данные. – ps2goat

+1

@ ps2goat - Я думаю, это связано с разделом между свойством и методами, но в этом случае я хочу сказать myObject.ZipCode = "12345", что намного лучше, чем myObject.SetZipCode ("12345") - YMMV, конечно! –

ответ

0

Вы можете сделать его немного короче. Обратите внимание:

  1. Удаление () после имени свойства
  2. Снятие подразумеваемой ByVal по параметру Value сета

Ваше новое свойство

Friend Property ZipCode As String 
    Get 
     Return GetDtaString(R, fldZipCode) 
    End Get 
    Set(Value As String) 
     SetDtaString(R, fldZipCode, Value) 
    End Set 
End Property 

БОНУС: Если вы работали в C#, вы могли бы сделать

internal String ZipCode { 
    get { return GetDtaString(R, fldZipCode); } 
    set { SetDtaString(R, fldZipCode, value); } } 

и будучи C#, все это может быть поставлен на одну строку, но это может выглядеть не очень красиво ...

internal String ZipCode {get { return GetDtaString(R, fldZipCode); } set { SetDtaString(R, fldZipCode, value); } } 

Посмотрите на VB.Net Language Specification для получения дополнительной информации.

+0

Вот почему я спросил, я знал, что это был способ сделать это на C#, поэтому мне было интересно, если бы я просто пропустил способ сделать то же самое в VB –

Смежные вопросы