用法一

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

C#this关键字用法的更多相关文章

  1. ava下static关键字用法详解

    Java下static关键字用法详解 本文章介绍了java下static关键字的用法,大部分内容摘自原作者,在此学习并分享给大家. Static关键字可以修饰什么? 从以下测试可以看出, static ...

  2. 巨人大哥谈Java中的Synchronized关键字用法

    巨人大哥谈Java中的Synchronized关键字用法 认识synchronized 对于写多线程程序的人来说,经常碰到的就是并发问题,对于容易出现并发问题的地方价格synchronized基本上就 ...

  3. synchronized关键字用法

    看到网上很多讲synchronized关键字用法的文章,说的都很有道理,也很深刻,但是看完总感觉脑袋里还是有点乱乱的.经过一番自己的思考后,想从自己的思考角度出发,来说一说synchronized关键 ...

  4. Java-Runoob-高级教程-实例-方法:09. Java 实例 – continue 关键字用法-un

    ylbtech-Java-Runoob-高级教程-实例-方法:09. Java 实例 – continue 关键字用法 1.返回顶部 1. Java 实例 - continue 关键字用法  Java ...

  5. Java-Runoob-高级教程-实例-方法:08. Java 实例 – break 关键字用法

    ylbtech-Java-Runoob-高级教程-实例-方法:08. Java 实例 – break 关键字用法 1.返回顶部 1. Java 实例 - break 关键字用法  Java 实例 Ja ...

  6. Java-Runoob-高级教程-实例-方法:07. Java 实例 – instanceOf 关键字用法

    ylbtech-Java-Runoob-高级教程-实例-方法:07. Java 实例 – instanceOf 关键字用法 1.返回顶部 1. Java 实例 - instanceof 关键字用法   ...

  7. C#中var关键字用法分析

    原文连接 本文实例分析了C#中var关键字用法.分享给大家供大家参考.具体方法如下: C#关键字是伴随着.NET 3.5以后,伴随着匿名函数.LINQ而来, 由编译器帮我们推断具体的类型.总体来说,当 ...

  8. sql server if exists和 if not exists 的关键字用法

    if exists和if not exists关键字用法   1.介绍  if not exists 即如果不存在,if exists 即如果存在 2.使用  a.判断数据库不存在时  if not ...

  9. Java 实例 - instanceof 关键字用法

    Java 实例 - instanceof 关键字用法 instanceof 是 Java 的一个二元操作符,类似于 ==,>,< 等操作符. instanceof 是 Java 的保留关键 ...

  10. C#中default 、base 、this关键字用法简介

     C#中default关键字用法简介 default 关键字可在switch语句或泛型代码中使用.switch语句:指定默认标签.泛型代码:指定类型参数的默认值.对于引用类型为空,对于值类型为零swi ...

随机推荐

  1. 防火墙没关导致 ORA-12541: TNS: 无监听程序

    电脑用着用着突然Oracle就报出下面的错误,按照网上的办法搞了几个小时都没有搞好. Oracle重装了好几次也没用,实在没办法又花了个多小时装了个虚机,结果也是同样的错误. 于是恍然大悟,可能是物理 ...

  2. Java组待开发的任务

    周枫: A.将digital,xylinkWeb修改为支持oracle版,并完成测试工作.准备好实施安装的步骤和每步需要的文件,比如发布的项目,tomcat,jdk,memcached,数据库等,在单 ...

  3. SharedObject.getLocal("application-name")

    package { import flash.display.Sprite; import flash.events.MouseEvent; import flash.events.NetStatus ...

  4. C++学习笔记之友元

    一.引言 C++控制对类对象私有部分(private)的访问,通常只能通过公有的(public)类方法去访问.但是有时候这种限制太严格,不适合特定的问题,于是C++提供了另外一种形式的访问权限:友元. ...

  5. .Net 应用程序如何在32位操作系统下申请超过2G的内存【转】

    作者: eaglet 2008 年我写过一篇博客叫 <让.Net 应用程序突破2G的内存访问限制> 这篇博客主要讲述了如何在32位操作系统下利用AWE 扩展访问超过2G的内存.AWE方式虽 ...

  6. C++ Code_ImageList

    主题 1.  创建图像列表 2.  使用图像列表绘图 3. 4. 5.     代码::创建图像列表 双击 Cproject03Dlg在     下面添加 1 句 ////////////////// ...

  7. android IPC及原理简介

    什么是Android操作系统,所谓的Android:是基于Linux内核的软件平台和操作系统,早期由Google开发,后由开放手机联盟Open Handset Alliance)开发.   Linux ...

  8. [Angular2 Form] Group Inputs in Angular 2 Forms with ngModelGroup

    The ngModelGroup directive allows you to group together related inputs so that you structure the obj ...

  9. iOS开发——UI篇Swift篇&UITabBarController

    UITabBarController class UITabBarControllerController: UIViewController { var titleString:String! @I ...

  10. jq实现搜索引擎的提示效果

    (function ($) { $.fn.Search = function (options) { var defaults = { inputid: "search", div ...