在使用C#中的表单控件时,何时使用THIS关键字?

6

我仍然离精通C#很远,但是内心的孩子推动着我不断提高我的编程水平。
当我制作WinForms应用程序时,我希望能够通过编程方式改变和使用许多控件。
我不理解的是,何时需要使用this.control关键字,何时应该只使用control
示例:
如果我想更改标签的文本,我可以写

mylabel.text = "Text for label"

或者

this.mylabel.tex = "Text for label"

哪种方法是正确的?在使用WinForms中的控件(如datagrid、text、tables等)时,何时使用this关键字有简单的解释吗?

2个回答

7
在这种情况下,这两行都是“正确的”。然而,在这里使用“this”是不必要的。
使用“this”的一个原因是如果您需要解决歧义。 “this”使您可以明确访问类的成员。以下是一个示例:
class Test
{
   public void SetNumber(int number)
   {
      this.number = number;
   }

   private int number;
}

在这个例子中,你必须使用“this”来引用类成员“number”,并将传入参数中同名的值赋给它。
当然,最好有一个命名约定来避免这种情况。我倾向于在私有成员数据前面加下划线(即_number)。

是的。使用一些命名规范来消除歧义比使用 this 更好。 - Manfred
明确被.NET风格指南所反对。考虑称之为"ungarian"或者"resharpian"。 - Hans Passant

5

只有在需要区分字段/属性和局部变量时才是必需的。其他人可能会在其他地方使用它,但这是一个风格决定。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接