zoukankan      html  css  js  c++  java
  • this(C# 参考)

    原文地址:https://msdn.microsoft.com/zh-cn/library/dk1507sz.aspx

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

    System_CAPS_note注意

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

    以下是 this 的常用用途:

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

     
    public Employee(string name, string alias)
    {
        // Use this to qualify the fields, name and 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,它们都被相似的名称隐藏。 该关键字还用于将对象传递到属于其他类的方法 CalcTax。

     
    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
     */
    
  • 相关阅读:
    js的数组问题
    2014的希冀
    js事件在不同浏览器之间的差异
    jackson 实体转json 为NULL或者为空不参加序列化
    spring的嵌套事务
    Mysql的事务及行级锁
    Nginx简介及配置文件详解
    springmvc常用注解标签详解
    springmvc相关配置和用法
    Java并发编程(一):进程和线程之由来
  • 原文地址:https://www.cnblogs.com/Arlar/p/6032561.html
Copyright © 2011-2022 走看看