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

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,它们都被相似的名称隐藏。 该关键字还用于将对象传递到属于其他类的方法 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}\nAlias: {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 PanAlias: mpanTaxes: $240.00*/

转载于:https://www.cnblogs.com/Arlar/p/6032561.html

this(C# 参考)相关推荐

  1. Xilinx低比特率高品质 ABR 视频实时转码(HPE 参考架构)

    Xilinx低比特率高品质 ABR 视频实时转码(HPE 参考架构) 介 绍 对实时视频流的需求给视频服务提供商带来了严峻挑战,必须在管理基础设施和互联网带宽运营成本,还要为客户提供高质量体验.鉴于视 ...

  2. nvGRAPH API参考分析(二)

    nvGRAPH API参考分析(二) nvGRAPH Code Examples 本文提供了简单的示例. nvGRAPH convert topology example void check(nvg ...

  3. nvGRAPH API参考分析(一)

    nvGRAPH API参考分析(一) 本文通过描述nvGRAPH库函数的输入/输出参数,数据类型和错误代码来指定其行为. 返回值nvgraphStatus_t 除以下内容外,所有nvGRAPH库返回值 ...

  4. html iso标准文档,HTML ISO-8859-1 参考手册

    # HTML ISO-8859-1 参考手册 HTML 4.01 支持 ISO 8859-1 (Latin-1) 字符集. ISO-8859-1 的较低部分(从 1 到 127 之间的代码)是最初的 ...

  5. 浙江大学数学专业考研试题参考解答

    浙江大学2009年数学分析考研试题参考解答 浙江大学2010年数学分析考研试题参考解答 浙江大学2011年数学分析考研试题参考解答 浙江大学2012年数学分析考研试题参考解答 浙江大学2013年数学分 ...

  6. unity3d-----Collider 组件参考

    Collider 组件参考 点击 属性检查器 下面的 添加组件 按钮,然后从 添加碰撞组件 中选择需要的 Collider 组件,即可添加 Collider组件到节点上. Collider 组件属性 ...

  7. 【学习参考】Animate.css动画演示

    学习参考地址: http://www.dowebok.com/demo/2014/98/ 转载于:https://www.cnblogs.com/wuqun/p/5984729.html

  8. 知道PHP期末答案,PHP期末练习(参考答案).doc

    PHP期末练习(参考答案) 练习题 单选 以下控制选项与错误控制无关的是:( ) error_reporting display_errors log_errors date.timezone 下面不 ...

  9. 南京晓庄学院大一第二学期计算机数据结构期末考试试卷及答案,南京晓庄学院数据结构题库参考答案.docx...

    文档介绍: 数据结构与算法****题册(课后部分参考答案)<数据结构与算法>课程组目录课后****题部分第一章绪论 1第二章线性表 3第三章栈和队列 5第四章串 8第五章数组和广义表 10 ...

  10. 2021贵州高考成绩查询文科,贵州高考排名对应大学-贵州高考位次查询(2021年文科参考)...

    选择科目 测一测我能上哪些大学 选择科目 领取你的专属报告 > 选择省份 关闭 请选择科目 确定 v> 每年高考结束后,报大学.选专业.填志愿就成了考生与家长十分关心的一件事情.本期,圆梦 ...

最新文章

  1. 四川师范大学大学计算机基础,四川师范大学2009-2010学年计算机基础期末考试试题.doc...
  2. 您必须在sources.list中指定代码源_python如何从源代码构建lxml
  3. HTTP层 —— Session
  4. 日历,日期类(copy)
  5. 安装mysql5.7出现问题_本地安装Mysql5.7过程中出现的一系列问题
  6. IIS7 与 WCF 问题总结
  7. Dapr + .NET 实战(五)Actor
  8. 区分关联、依赖和聚集关系
  9. mysql 取年月日 语句_MySQL学习从这里出发!
  10. 大型网站技术架构读书笔记
  11. HTML之一天学会html(常用标签+网页架构)
  12. 深度学习超参数简单理解:learning rate,weight decay和momentum
  13. strdup linux,内存管理 – Linux内核API kstrdup
  14. 内部排序算法(Golang版本)
  15. Vue导出excel表格设置样式的解决方案
  16. Python数学建模入门【3】
  17. Vue 实现数组四级联动
  18. Spark电商离线数仓·用户模块指标统计
  19. cad完全卸载教程_卸载后 如何彻底删除CAD2010?
  20. 现在润新加坡是个好主意吗?

热门文章

  1. C#坏习惯:通过不好的例子学习如何制作好的代码——第1部分
  2. 互联网协会点名QQ音乐等14款 App 过度收集用户信息
  3. 简述python_简述Python语言经验总结
  4. php-fpm哪里下载_centos – Nginx PHP-FPM提供.php文件作为下载
  5. 远程同步修改云服务器上的文件
  6. 发送get请求php,如何利用PHP发送GET请求
  7. 计算机网关,如何查看计算机的IP地址和网关
  8. java混淆工具zelix比较_vscode,java环境
  9. wos 文献被引_CiteSpace与Histcite在文献引用上的区别
  10. 玩转 SpringBoot 2 快速整合 | JSP 篇