2016-09-28 72 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

您可以稍微縮短一點。注意:該屬性的名稱上設置的值參數

你的新屬性

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

BONUS

  • 去除隱含ByVal

    1. 罷免()的:如果你在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中做同樣的事情的方式 –