为什么有些人使用`这个?

Luc*_*fer 4 .net c# wpf winforms

可能重复:
C#中'this'关键字的用途是什么.

你好,

我对某事有疑问.我环顾四周,但似乎无法弄明白.



为什么有些程序员会this在某事前使用?喜欢:

this.button1 = String.Empty;
Run Code Online (Sandbox Code Playgroud)

在MSDN中,我不记得看到this.被使用,除非this.指的是表单本身,如下所示:

this.WindowState = FormWindowState.Minimized;
Run Code Online (Sandbox Code Playgroud)

这是我们真正应该参考的东西吗?或者,这样做是否有额外的好处?到目前为止,我没有经历任何明显的好处,我没有注意到任何变化.


谢谢 :-)

Wil*_*ani 10

关键字this通常用作明确变量来源的方式.例如,一个大函数可能有很多变量,使用它可以用来说明正在设置的类的真正属性,以及什么是函数变量.

另外,请考虑下面的示例,其中必须使用关键字来区分类变量和函数参数.

object one;
object two;
public MyClass(object one, object two)
{
    this.one = one;
    this.two = two;
}
Run Code Online (Sandbox Code Playgroud)


Akr*_*hda 8

实际上,您this用来引用容器对象.使用this有时在解决一些约束情况时非常有用,如下所示:

public class Person
{
    private String name;

    public Person(String name)
    {
         this.name = name;
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,您可以通过更改私有字段/变量的名称来避免使用它:

public class Person
{
    private String _name;

    public Person(String name)
    {
         _name = name;
    }
}
Run Code Online (Sandbox Code Playgroud)

  • +1用于更正.所有命名指南都是绝对主观和随意的,这就是为什么它们都是"指南",不是吗?:DI认为C#几乎没有"this"关键字非常有用的情况.例如,如果您需要将当前实例作为某个方法的参数.但我不会投票使用它来消除歧义. (4认同)

Mar*_*rco 6

这意味着这个对象:如果你的形式是一个形式,如果你是一个简单的类,那就是你的类.我们不应该使用它(它是隐含的),但有时你需要它来使代码非常清楚,或者在以下情况下它是必要的:

class MyClass
{
    private int tot = 0;
    public MyClass(int tot)
    {
        this.tot = tot;
    }
}
Run Code Online (Sandbox Code Playgroud)


tof*_*tim 6

请查看http://msdn.microsoft.com/en-us/library/dk1507sz(v=vs.71).aspx.大多数情况下,我们使用它来确保我们指的是可能隐藏的类的成员.MSDN示例是:

public Employee(string name, string alias) 
{
   this.name = name;
   this.alias = alias;
}
Run Code Online (Sandbox Code Playgroud)


Eri*_*ono 5

this在代码中使用关键字将区分哪些区域是您当前在范围内的类的属性和方法.这也意味着我们使用的是实例方法和属性,而不是静态方法和属性.

这也意味着我们必须首先实例化它.

因此,它将提高代码的可读性和含义,特别是在代码将与其他人共享的大型软件开发人员团队中.