任何人都可以向我解释“这个”参考吗?我们用这个的时候?用一个简单的例子。
答案 0 :(得分:3)
this
是范围标识符。它在对象的实例方法中用于标识属于该类实例的行为和状态。
答案 1 :(得分:3)
在类中使用this
时,您将引用当前实例:该类的实例。
public class Person {
private string firstName;
private string lastName;
public Person(string firstName, string lastName) {
//How could you set the first name passed in the constructor to the local variable if both have the same?
this.firstName = firstName;
this.lastName = lastName;
}
//...
}
在上面的示例中,this.firstName
引用了类firstName
的当前实例的字段Person
和firstName
(分配的右侧部分)指的是在构造函数范围内定义的变量。
所以当你这样做时:
Person me = new Person("Oscar", "Mederos")
this
引用实例Person
实例me
。
修改强>
由于this
是指类实例,因此不能在静态类中使用。
this
也用于在类中定义索引器,例如在数组中:a[0]
,a["John"]
,...
答案 2 :(得分:0)
如今时尚Fluent APIs广泛使用this
。基本上它用于获取对当前实例的引用。
答案 3 :(得分:0)
这是一个简单的例子
public class AnObject
{
public Guid Id { get; private set;}
public DateTime Created {get; private set; }
public AnObject()
{
Created = DateTime.Now;
Id = Guid.NewGuid();
}
public void PrintToConsole()
{
Console.WriteLine("I am an object with id {0} and I was created at {1}", this.Id, this.Created); //note that the the 'this' keyword is redundant
}
}
public Main(string[] args)
{
var obj = new AnObject();
obj.PrintToConsole();
}