C#中this关键字的用法
其作用引用类的当前实例,其实看了下面这个例子就好理解了。
this不能用于静态方法中,比如Main~
主要三个作用:当前实例、参数传递和索引器
1.1 当前实例
class Team
{
///成员变量
private string name;
///构造函数
public Team(string name)
{
this.name = name;
}
}
在这里因为是要将参数的name值传入Team类或者说对象的name成员变量中。
在这里通过使用this可以表明name的对象是当前的实例,也就是Team对象,而不是参数name。
1.2 参数传递
另外还有一个作用就是可以做为'指针'来使用,可以将当前对象元素按照引用参数方式传递。
例如:
class A
{
public string name = "liangzhen";
public A()
{
}
}
class B
{
private A a;
public B(A a)
{
this.a = a;
}
public void Change()
{
this.a.name = "kathy";
}
}
class Demo
{
static void Main()
{
A a = new A();
B b = new B(a);
b.Change();
Console.WriteLine(a.name);
Console.ReadLine();
}
}
这里完成的是一个引用参数传递,在这里如果B对象中执行Change方法后,B和A所对于得实例中的name都将改变为"kathy".
1.3 索引器
public object this [int param]
{
get { return array[param]; }
set { array[param] = value; }
}