zoukankan      html  css  js  c++  java
  • C#this关键字用法

    用法一

    this关键字的作用是解决当传入参数的名称和数据字段的名称,类型完全相同时产生的作用于歧义,一般情况下我们应该避免产生重名的习惯

    先来演示下:

    class Airplane
        {
            public int age;
            public string name;
            public void SetDeriverName(string name)
            {
                name = name;
            }
        }
    调用上面的类实例

    Airplane fly = new Airplane();
                fly.SetDeriverName("Jack");
                Console.WriteLine("驾驶员的名字是:{0}", fly.name);
    编译上面代码时候,VS会给出警告,并且fly.name字段的内容为空。我们通过SetDeriverName给数据成员name字段赋值根本无效;问题在于编译器认为赋值号右边的name指向当然方法作用域内的变量,而不是类作用域中的字段。要想让编译器知道赋值号右边的name是准备赋值给类数据成员name字段的,可以使用this关键字解决这个问题,只需在数据成员前使用this关键字即。事实上this是可选的,当不存在重名时候,根本不需要使用this



    当我们使用this之后,VS的智能感知,自动的识别出this.name 就是public string name中的name字段

    用法二

    用this串联构造函数

    this的另一个用法是用来串联构造函数,用法如下:

            public Airplane() { }
            public Airplane(int currAge)
            {
                if(currAge<25)
                {
                    currAge = 25;
                }
                age = currAge;
            }
            public Airplane(int currAge, string name)
            {
                if(currAge<25)
                {
                    currAge = 25;
                }
                age = currAge;
                this.name = name;
            }
        


            public Airplane() { }
            public Airplane(int currAge)
                : this(currAge, "") { }
            public Airplane(int currAge, string name)
            {
                if(currAge<25)
                {
                    currAge = 25;
                }
                age = currAge;
                this.name = name;
            }
        }


  • 相关阅读:
    第10件事 向优秀产品学习的学问
    第9件事 产品定位要解决的6个问题
    第8件事 3步打造产品的独特气质
    Git 从服务器取得最新代码覆盖本地
    Git:代码冲突常见解决方法
    oracle线程数更改
    从Git仓库中恢复已删除的分支、文件或丢失的commit
    Sublime 3114 + 转换GBK方法
    教你快速写出多线程Junit单元测试用例
    Spring中加载xml配置文件的六种方式
  • 原文地址:https://www.cnblogs.com/tao-zi/p/3832574.html
Copyright © 2011-2022 走看看