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;
            }
        }


  • 相关阅读:
    js 兼容各类手机 的写法 待续
    css 兼容 各类手机的写法 待续
    数组的解构赋值
    let 和 const 命令
    ECMAScript 6 简介
    webpack4新建一个项目
    Webpack 4 Tutorial: from 0 Conf to Production Mode
    webpack4.1.1的使用详细教程
    git merge git pull时候遇到冲突解决办法git stash
    Git 常用命令速查表(图文+表格)
  • 原文地址:https://www.cnblogs.com/tao-zi/p/3832574.html
Copyright © 2011-2022 走看看