C语言

c#中访问关键词 this 的常用用途

时间:2024-08-27 00:00:17 C语言 我要投稿
  • 相关推荐

c#中访问关键词 this 的常用用途

  引导语:C#旨在设计成为一种“简单、现代、通用”,以及面向对象的程序设计语言,以下是小编整理的c#中访问关键词 this 的常用用途,欢迎参考阅读!

  this 关键字引用类的当前实例,还可用作扩展方法的第一个参数的修饰符。

  说明:

  本文讨论对类实例使用 this。有关其在扩展方法中使用的更多信息,请参见扩展方法(C# 编程指南)。

  以下是 this 的常用用途:

  限定被相似的名称隐藏的成员,例如:

  C#

  public Employee(string name, string alias)

  {

    // Use this to qualify the fields, name and alias:

    this.name = name;

    this.alias = alias;

  }

  将对象作为参数传递到其他方法,例如:

  CalcTax(this);

  声明索引器,例如:

  C#

  public int this[int param]

  {

    get { return array[param]; }

    set { array[param] = value; }

  }

  由于静态成员函数存在于类一级,并且不是对象的一部分,因此没有 this 指针。在静态方法中引用 this 是错误的。

  示例

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

  C#

  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} Alias: {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();

    }

  }

  /*

  Output:

    Name: Mingda Pan

    Alias: mpan

    Taxes: $240.00

  */

【c#中访问关键词 this 的常用用途】相关文章:

c#中预处理指令#if的使用08-18

浅谈C#语言的特点11-01

托福口语练习常用关键词汇08-31

讲解Java中如何构造内部类对象及访问对象07-24

c#检测cpu使用率09-01

医学考博写作常用核心关键词汇07-28

如何活用硬盘设置访问08-19

理解Java访问权限的控制07-22

C#实现协同过滤算法的实例代码06-19

C#抽象工厂模式的几种实现方法及比较10-20