Please search "this keyword" in vs.net help file:The this keyword refers to the current instance for which a method is called. Static member functions do not have a this pointer. The this keyword can be used to access members from within constructors, instance methods, and instance accessors.The following are common uses of this: To qualify members hidden by similar names, for example: 
public Employee(string name, string alias) 
{
   this.name = name;
   this.alias = alias;
}
To pass an object as a parameter to other methods, for example: 
CalcTax(this);
To declare indexers, for example: 
public int this [int param]
{
      get
      {
         return array[param];
      }
      set
      {
         array[param] = value;
      }
   }
It is an error to refer to this in a static method, static property accessor, or variable initializer of a field declaration.

解决方案 »

  1.   

    this就是你当前类实例的引用。
      

  2.   

    this 关键字引用为其调用方法的当前实例。静态成员函数没有 this 指针。this 关键字可用于从构造函数、实例方法和实例访问器中访问成员。以下是 this 的常用用途: 限定被相似的名称隐藏的成员,例如: 
    public Employee(string name, string alias) 
    {
       this.name = name;
       this.alias = alias;
    }
    将对象作为参数传递到其他方法,例如: 
    CalcTax(this);
    声明索引器,例如: 
    public int this [int param]
    {
          get
          {
             return array[param];
          }
          set
          {
             array[param] = value;
          }
       }
    在静态方法、静态属性访问器或字段声明的变量初始值设定项中引用 this 是错误的。示例
    在本例中,this 用于限定 Employee 类成员 name 和 alias,它们都被相似的名称隐藏。this 还用于将对象传递到属于其他类的方法 CalcTax。// keywords_this.cs
    // this example
    using System;
    public class Employee 
    {
       public string name;
       public string alias;
       public decimal salary = 3000.00m;   // Constructor:
       public Employee(string name, string alias) 
       {
          // Use this to qualify the fields, name and alias:
          this.name = name;
          this.alias = alias;
       }   // Printing method:
       public void printEmployee() 
       {
          Console.WriteLine("Name: {0}\nAlias: {1}", name, alias);
          // Passing the object to the CalcTax method by using this:
          Console.WriteLine("Taxes: {0:C}", Tax.CalcTax(this));
       }
    }
    public class Tax 
    {
       public static decimal CalcTax(Employee E) 
       {
          return (0.08m*(E.salary));
       }
    }public class MainClass 
    {
       public static void Main() 
       {
          // Create objects:
          Employee E1 = new Employee ("John M. Trainer", "jtrainer");      // Display results:
          E1.printEmployee();
       }
    }
    输出
    Name: John M. Trainer
    Alias: jtrainer
    Taxes: $240.00reference:
    ms-help://MS.VSCC/MS.MSDNVS.2052/csref/html/vclrfThisPG.htm