'这个'的确切目的是什么?关键词

时间:2018-05-28 01:50:38

标签: c# this

所以我几天前在Udemy上开始了关于C#的中级课程,导师正在谈论这个'这个'关键词。我知道它曾用于在类中引用变量等,而不是在函数中,但我觉得你仍然可以不使用它。让我举几个例子:

public Customer(int id, string name) 
    : this(id) 
{
    this.Name = name;
}

我觉得' this.Name '部分绝对没有必要,因为我只需输入' Name = name '教练在谈论有时候你会有类似的名字,而且只是为了确保你引用正确的变量,这样你就不会意外地输入' name = Name '或者类似的东西,我确信这对 ' '关键字。

2 个答案:

答案 0 :(得分:2)

我在上面的例子中同意你的说法,this.Name = name是没有意义的,事实上大多数编译器都会给你一个警告,说明它没有必要。

关键不在于您可以使用相似的名称,但您可以使用完全相同的名称:

private string name;
public Customer(int id, string name) : this(id) {
        this.name = name;
}

使name拼写与类字段和局部变量完全相同的方法是有效的语法。默认情况下引用局部变量,因此当存在具有 exact 相同名称的局部变量时,this存在引用类变量。因为否则没有其他方法可以引用它们。

答案 1 :(得分:2)

拥有CellAddress = "'" & Cell.Parent.Name & "'!" & Cell.Address(External:=False) 关键字的主要原因是,除了字段之外,还可以引用实例本身。例如,考虑visitor模式:

this