C#中this关键字的用法
2012-06-11 08:28
134 查看
其作用引用类的当前实例,其实看了下面这个例子就好理解了。
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; }
}
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; }
}
相关文章推荐
- C#中base、this关键字的几种用法
- C#:base与this关键字用法小结
- C#中 this关键字 四种用法
- C#控件splitContainer用法
- C#中GraphicsPath的AddString方法用法实例
- C#中DllImport用法和路径问题
- C#中HashTable的用法
- C#正则表达式编程(三):Match类和Group类用法
- C#正则表达式的简单用法
- JavaScript中的this关键字的用法和注意点
- C#中this的用法,你用过几种?【含源码示例】
- [转]C# DllImport用法和路径问题
- C#中“@”的作用和用法
- C#的New关键字的几种用法
- C#中Split用法
- C#中 ?? 的用法
- 浅析C# get set的简单用法
- C# where用法
- C#中this用法系列(二) 通过this修饰符为原始类型扩展方法
- C#中各种计时器用法小结