C# '的确切目的是什么;这';关键词
因此,几天前我在Udemy上开始了C#的中级课程,老师在谈论“This”关键字。我知道它是用来引用类中的变量,而不是函数中的变量,但我觉得你还是可以不用它。让我举几个例子:C# '的确切目的是什么;这';关键词,c#,this,C#,This,因此,几天前我在Udemy上开始了C#的中级课程,老师在谈论“This”关键字。我知道它是用来引用类中的变量,而不是函数中的变量,但我觉得你还是可以不用它。让我举几个例子: public Customer(int id, string name) : this(id) { this.Name = name; } 我觉得“this.Name”部分是绝对没有必要的,因为我可以直接键入“Name=Name”,讲师说有时你会有类似的名称,只是为了确保你引用的变量正确,这样你就不会意
public Customer(int id, string name)
: this(id)
{
this.Name = name;
}
我觉得“this.Name”部分是绝对没有必要的,因为我可以直接键入“Name=Name”,讲师说有时你会有类似的名称,只是为了确保你引用的变量正确,这样你就不会意外键入“Name=Name”或类似的内容,我相信“this”关键字肯定有更大的含义。我同意你在上面的例子中的观点,this.Name=Name是没有意义的,事实上大多数编译器都会给你一个警告,说明这是不必要的 关键不是你可以有相似的名字,而是你可以有完全相同的名字:
private string name;
public Customer(int id, string name) : this(id) {
this.name = name;
}
让
name
与类字段和局部变量的拼写完全相同是有效的语法。默认情况下引用局部变量,因此当存在具有完全相同名称的局部变量时,此
用于引用类变量。因为否则就没有其他方法引用它们了。我同意您在上面的示例中的观点,这个.Name=Name是没有意义的,事实上大多数编译器都会给您一个警告,说明没有必要这样做
关键不是你可以有相似的名字,而是你可以有完全相同的名字:
private string name;
public Customer(int id, string name) : this(id) {
this.name = name;
}
让
name
与类字段和局部变量的拼写完全相同是有效的语法。默认情况下引用局部变量,因此当存在具有完全相同名称的局部变量时,此
用于引用类变量。因为否则就没有其他方法来引用它们。使用这个
关键字的主要原因是,除了引用实例的字段外,还可以引用实例本身。考虑模式,例如:
interface Visitor {
void Visit(Target target);
}
class Target {
void Accept(Visitor visitor) {
visitor.Visit(this); // not just a field but a whole instance
}
}
使用
这个
关键字的主要原因是,除了引用实例的字段外,还可以引用实例本身。考虑模式,例如:
interface Visitor {
void Visit(Target target);
}
class Target {
void Accept(Visitor visitor) {
visitor.Visit(this); // not just a field but a whole instance
}
}
这不是调用仅以
id
作为参数的构造函数吗?这不是调用仅以id
作为参数的构造函数吗?