我正在寻找在VB.Net语法中使用(Me)关键字的标准或首选方法。
目前我知道3种使用方式(Me)。
没有(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()
答案 0 :(得分:5)
有一种情况你有使用它,以便在变量名不明确时帮助编译器:
Sub Foo(ByVal bar As Integer)
Me.Bar = bar
End Sub
从类名相同的参数中分配类中的字段。如果没有Me.
,它会将参数值分配给自身,这会编译但不会是预期的。在vb.net中并不罕见,因为它不区分大小写。否则建议,考虑与字段名称不同的参数标识符名称会很痛苦。一些程序员(和工具)总是倾向于给字段名称一个前导下划线以避免这个问题。
但是你在问题中提出的那些是个人品味的问题。前缀Me.
有两个好处,它有助于代码可读性,因为它表示范围并缩小读者必须查找声明的位置。它确实有助于IntelliSense弹出窗口缩小候选列表,我个人非常关心的功能。这取决于你。
答案 1 :(得分:1)
决定只有你自己,所有方法都是可以接受的,但是......像ReSharper这样的工具建议你不要使用Me(VB)或this(C#)关键字来使你的代码更清晰,更小。< / p>
在我的情况下,我避免使用Me关键字,但正如我所说,决定只有你自己。
答案 2 :(得分:0)
如果您没有专门使用它,则暗示ME。正如汉斯所提到的,有时你必须使用它,因为ME的范围将被更接近的范围名称所覆盖。
和其他人一样,我不经常使用它,通常当我不记得我称之为控制时我刚刚在两分钟前添加了...然后我再次把它拿出来只是因为我不在乎语法LOL 。我本来希望&#34;这个&#34;而不是我。