在C#中this用来指代当前对象,用于当成员函数中的形参名跟成员变量名一致时,进行区分。
但this不仅仅只有这一作用,this还可以如下这样用:

1 class class1
2 {
3 private int i_a;
4 private string s_a;
5
6 public class1()
7 {
8 i_a = 0;
9 s_a = "default";
10 }
11
12 public class1(int i_a)
13 {
14 if (i_a > 5 && i_a < 10)
15 {
16 this.i_a = i_a;
17 }
18 s_a = "defalt";
19 }
20
21 public class1(string s_a)
22 {
23 this.i_a = 0;
24 this.s_a = s_a;
25 }
26 public class1(int i_a, string s_a)
27 {
28 if (i_a > 5 && i_a < 10)
29 {
30 this.i_a = i_a;
31 }
32 this.s_a = s_a;
33 }
34
35 public void print()
36 {
37 Console.WriteLine("i_a = {0}", i_a);
38 Console.WriteLine("s_a = {0}", s_a);
39 }
40 }

1 class class1
2 {
3 private int i_a;
4 private string s_a;
5
6 public class1()
7 {
8 i_a = 0;
9 s_a = "default";
10 }
11
12 public class1(int i_a):this(i_a,"default"){}
13
14 public class1(string s_a):this(0,s_a){}
15
16 public class1(int i_a, string s_a)
17 {
18 if (i_a > 5 && i_a < 10)
19 {
20 this.i_a = i_a;
21 }
22 this.s_a = s_a;
23 }
24
25 public void print()
26 {
27 Console.WriteLine("i_a = {0}", i_a);
28 Console.WriteLine("s_a = {0}", s_a);
29 }
30 }
另外,this还可以用在索引器中。