【问题标题】:Standard for using the Me keyword in VB.Net在 VB.Net 中使用 Me 关键字的标准
【发布时间】:2012-07-20 20:30:40
【问题描述】:

我正在寻找在 VB.Net 语法中使用 (Me) 关键字的标准或首选方式。

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

没有(我)关键字:

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()

(我)在使用结构中:

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()

【问题讨论】:

  • 这是一个有趣的问题,但它不适合这个网站。所有这些选项都是有效且可接受的。这纯粹是一个偏好问题。就我个人而言,我更喜欢第一种选择,但这只是我个人的看法,我知道其他非常优秀的程序员会不同意。
  • 第二个例子是否真的引用了我?您不要在控件前面加上点。

标签: vb.net coding-style standards keyword


【解决方案1】:

在一种情况下,您必须使用它,以在变量名不明确时帮助编译器:

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

从具有相同名称的参数中分配类中的字段。如果没有Me.,它会将参数值分配给它自己,它可以编译但绝不是预期的。在 vb.net 中并不少见,因为它不区分大小写。否则建议,考虑与字段名称不同的参数标识符名称可能会很痛苦。一些程序员(和工具)倾向于始终为字段名称提供前导下划线以避免此问题。

但您在问题中提出的问题是个人喜好问题。前缀Me. 有两个好处,它有助于代码可读性,因为它指示范围并缩小读者必须查找声明的位置。它确实有助于 IntelliSense 弹出窗口缩小候选列表的范围,这是我个人非常关心的功能。这取决于你。

【讨论】:

  • 感谢您的建议。我会确保我不会在 Using Me 结构中对其进行编码。
【解决方案2】:

决定权在你手中,所有方法都可以接受,但是...... ReSharper 等一些工具建议你不要使用 Me (VB) 或 this (C#) 关键字,以使你的代码更清晰、更小。

就我而言,我避免使用 Me 关键字,但正如我所说,决定权在你。

【讨论】:

    【解决方案3】:

    如果您不专门使用 ME,则它是隐含的。正如 Hans 所提到的,有时您必须使用它,因为 ME 的范围将被范围更近的名称覆盖。

    和其他人一样,我很少使用它,通常当我不记得我所谓的一些控制时,我刚刚在两分钟前添加了......然后我又把它拿出来,只是因为我不关心语法 LOL。我会更喜欢“这个”而不是我。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-07-15
      • 1970-01-01
      • 2013-07-12
      • 1970-01-01
      • 1970-01-01
      • 2014-08-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多