总结了一些This的理解和例子
using System;
using System.Collections.Generic;using System.Linq;
using System.Text;
using System.Threading.Tasks;
{
class Program
{
static void Main(string[] args)
{
TestThis B=new TestThis("Male");
}
}//endclassprogram
class TestThis
{
string name="Mary";//全局变量的name
string ages{get;set;}
public TestThis(string name,int age)//局部变量的name
{
name = this.name;/*在一个函数中,使用了一个和全局变量一样名字的局部变量,
如果 前面不加This就表示局部变量(就近原则),加了This表示全局变量
*/
Console.WriteLine("My name is "+name+"and I'm "+age+" years old!");
}
public TestThis(string gender) :this("leo",100)//this 指代一个构造函数,具体是哪一个要看重载的参数来决定
{ //这个构造函数执行的时候,首先执行this指代的构造函数
Console.WriteLine("My gender is "+gender);
}
}//endclassTestThis
}//end namespace
/*总结:this有三个个作用:1.当局部变量和全局变量重名的时候,变量前面加上this表示全局变量(当然,在局部使用这种重名变量的时候加This才有意义)
2.:this()可以用来指代某个构造函数,括号的参数决定是哪一个重载
3.this指代当前所在的函数中,如:
public class TestThreading { private System.Object lockThis = new System.Object(); public void Process() { lock (lockThis) { // Access thread-sensitive resources. } } }
*/