C# 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 是错误的。

示例
在本例中,this 用于限定 Employee 类成员 name 和 alias,它们都被相似的名称隐藏。this 还用于将对象传递到属于其他类的方法 CalcTax。

// keywords_this.cs
// this example
using System;
class Employee
{
    private string name;
    private string alias;
    private 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 decimal Salary
    {
        get { return salary; }
    }
}
class Tax
{
    public static decimal CalcTax(Employee E)
    {
        return 0.08m * E.Salary;
    }
}

class MainClass
{
    static void Main()
    {
        // Create objects:
        Employee E1 = new Employee("Mingda Pan", "mpan");

        // Display results:
        E1.printEmployee();
    }
}

泉州安溪那家公司网站建设软件开发好。。。

输出
Name: Mingda Pan
Alias: mpan
Taxes: $240.00

 

this有两种意义
一种是指当前对象,一般可省略,但当当前对象的某个属性和当前的局部变量的某个标识符名称相同,在使用对象的属性时就需要用 this.属性名 来取到该属性
另一种是指构造方法,在编写构造方法时调用另一个构造方法
写法如下:
class A{
string a;
string b;
public A(string a){
this.a=a;//这边this指代当前对象,属性a和参数a名字相同,所以用this来取属性a
}
public A(string a,string b):this(a){//这边在编写两个参数的构造方法时调用了一个参数的构造方法
this.b=b;
}
}

c#中 this保留字的用法

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.00