this 关键字的几种用法

1 用于区分指定对象的成员,属性,以及方法。
例如:

Class MyCLass
{
int var1= 10;
public int ReturnMaxSum(int var1)
{

    return var1>this.var1 ? var1:this.var1;
} 

}
Class Program
{
static void Main()
{
MyClass mc= new MyClass();
Console.WriteLine($"MAX:{MC.ReturnMaxSum(30);
Console.WriteLine($"MAX:{MC.ReturnMaxSum(5);
}
2、索引器的使用
Return Type this[Type param1....]
get
{
}
set
{
}
例如 索引器的案例
Class Employee
{

    public string LastName;
    public string FristName;
    public string CityOfBirth;

public string this[int index]
{
set
{
switcch (index)
{
case 0;LastName=value;
break;
case 1;FristName=value;
break;
case 2;CityOfBirth=value;
break;
defult:
throw new ArgumentOutOfRange("index");
}
get
{
switch(index)
{
case 0;return LastName;
case 1;return FristName;
case 2;return CityOfBirth;
}
}
}

3、用this关键字串联默认的构造函数
public class Test
{
public Test()
{
Console.WriteLine("无参构造函数");
}
// this()对应无参构造方法Test()
     // 先执行Test(),后执行Test(string text)
public Test(string text) : this()
{
Console.WriteLine(text);
Console.WriteLine("有参构造函数");
}
}

4、可以用this来做为参数状当前实例做为参数传入方法.

public class ThisFF

{

  public ThisFF()

  { 

  }

  public string shuju()

  {

      return "This指针当做方法传递";

  }



  public void f1(ThisFF ff)

  {

      HttpContext.Current.Response.Write(ff.shuju());

  }



  public void f()

  {

      f1(this);//this在这里可以理解为 ThisFF ff=news ThisFF();当前类的实例

  }

}

ThisFF ff=news ThisFF();//方法实例

ff.f();//调用方法 输出结果为: This指针当做方法传递

上一篇:02-JUC-CAS


下一篇:Java 锁机制了解一下