2012-07-20 22 views
1

我在查找是否有在VB.Net語法中使用(Me)關鍵字的標準或首選方式。在VB.Net中使用Me關鍵字的標準

目前我知道3種使用方法(我)。

如果沒有(Me)的關鍵字:

Cursor = Cursors.WaitCursor 

RadioButtonSortBySurname.Checked = True 

LightGrid.SortColumn(2) 
LightGrid.Columns(2).LastSortState = Ascending 
LightGrid.SortColumn(1) 
LightGrid.Columns(1).LastSortState = Ascending 

Cursor = Cursors.Default 

LightGrid.StatusRowText = "" 
LightGrid.Select() 

(Me)中在使用結構:

Using Me 
    Cursor = Cursors.WaitCursor 

    RadioButtonSortBySurname.Checked = True 

    LightGrid.SortColumn(2) 
    LightGrid.Columns(2).LastSortState = Ascending 
    LightGrid.SortColumn(1) 
    LightGrid.Columns(1).LastSortState = Ascending 

    Cursor = Cursors.Default 

    LightGrid.StatusRowText = "" 
    LightGrid.Select() 
End Using 

使用(ME)上的每個控制:

Cursor = Cursors.WaitCursor 

Me.RadioButtonSortBySurname.Checked = True 

Me.LightGrid.SortColumn(2) 
Me.LightGrid.Columns(2).LastSortState = Ascending 
Me.LightGrid.SortColumn(1) 
Me.LightGrid.Columns(1).LastSortState = Ascending 

Cursor = Cursors.Default 

Me.LightGrid.StatusRowText = "" 
Me.LightGrid.Select() 
+2

這是一個有趣的問題,但它不適合這個網站。所有這些選項都是有效且可接受的。這完全是一個偏好問題。我個人更喜歡第一種選擇,但那只是我,我知道其他非常優秀的程序員會不同意。 – 2012-07-20 20:46:10

+0

第二個例子是否實際引用了ME? 您不要在控件前加點。 – 2017-02-07 16:54:16

回答

0

的決定只是你的,所有的方式都可以接受,但是......有些工具像ReSharper建議你不要使用Me(VB)或者這個(C#)關鍵字來使你的c頌歌更清晰,更小。

在我的情況下,我避免使用Me關鍵字,但正如我所說,決定只是你的。

5

有一個情況下,你使用它,以幫助編譯器在變量名稱不明確:

Sub Foo(ByVal bar As Integer) 
    Me.Bar = bar 
End Sub 

從具有相同名稱的參數在類分配領域。如果沒有Me.,它會將自變量值賦給自身,但編譯它本身並不是預期的。在vb.net中不常見,因爲它不區分大小寫。否則,推薦使用與字段名稱不同的參數標識符名稱可能會很痛苦。一些程序員(和工具)喜歡總是給字段名稱一個下劃線以避免這個問題。

但你在你的問題中提出的問題是個人品味問題。前綴Me.有兩個好處,它有助於代碼的可讀性,因爲它指示了範圍,並縮小了讀者查找聲明的範圍。這真的有助於智能感知彈出窗口縮小候選人名單,這是我個人非常關心的功能。它是由你決定。

+0

感謝您的建議。我會確保我不會在Using Me結構中編寫代碼。 – 2012-07-20 21:51:16

0

如果您沒有專門使用ME,則暗示爲ME。正如漢斯所說,有時你必須使用它,因爲ME的範圍將被更接近的範圍名稱覆蓋。

像其他人一樣,我只用它很少,通常當我不記得我剛剛添加的兩分鐘前我稱爲某種控制的東西時...然後我再次拿出它,只是因爲我不在乎語法LOL。我會更喜歡「這個」而不是我。