C# this关键字用法
来源:互联网 发布:淘宝的潘多拉是真的吗 编辑:程序博客网 时间:2024/05/21 10:14
C# this关键字用法
这个关键字引用类的当前实例,并且也用作扩展方法第一个参数的修饰符
下面是this关键字的常见用法
- 限定被相似的名字隐藏的类成员(如果方法的参数与字段同名,它会屏蔽改字段),例如:
public Employee(string name, string alias) { // 用 this 来限定 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的members,name 和alias,这些被相似的名字隐藏。它也被用来传递一个对象到另外一个类的CalcTax方法中。
using System;namespace this关键字用法{ internal class MainClass { private static void Main() { // Create objects: var e1 = new Employee("Mingda Pan", "mpan"); // Display results: e1.PrintEmployee(); Console.ReadKey(); } } /* Output: Name: Mingda Pan Alias: mpan Taxes: $240.00 */ /// <summary> /// 员工类 /// </summary> internal class Employee { private readonly string name; private readonly string alias; private const decimal salary = 3000.00m; /// <summary> /// 构造函数 /// </summary> /// <param name="name">员工名字</param> /// <param name="alias">员工别名</param> public Employee(string name, string alias) { // 用 this 限定 fields, name and alias: this.name = name; this.alias = alias; } /// <summary> /// 打印员工的名字、别名和税收 /// </summary> public void PrintEmployee() { Console.WriteLine("Name: {0}\nAlias: {1}", name, alias); // 用this传递对象给 CalcTax 方法 Console.WriteLine("Taxes: {0:C}", Tax.CalcTax(this)); } /// <summary> /// 薪水 /// </summary> public decimal Salary { get { return salary; } } } /// <summary> /// 税收类 /// </summary> internal class Tax { /// <summary> /// 计算税收 /// </summary> /// <param name="e">员工对象</param> /// <returns></returns> public static decimal CalcTax(Employee e) { return 0.08m * e.Salary; } }}
查看微软MSDN英文原文
0 0
- C# this关键字用法
- C#中base、this关键字的几种用法
- This、Using、关键字用法
- Java this 关键字用法
- Java this 关键字用法
- this关键字的用法
- this关键字的用法
- this关键字的用法
- this关键字用法
- this关键字的用法
- this 关键字的用法
- this关键字用法
- Java this 关键字用法
- this 关键字的用法
- c#中的this关键字
- C# this关键字详解
- C#之关键字this
- C# this关键字
- 传统优化算法与遗传算法之间的优缺点和特点比较
- StackOverflowError:android.view.View.jumpDrawablesToCurrentState
- 算法提高 9-3摩尔斯电码
- Servlet+Ajax实现百度智能搜索
- 大王叫我来巡山~(数据库 for update 锁表相关问题~)
- C# this关键字用法
- JS中的!=、== 、!==、===的用法和区别。
- Java Timer详解
- JavaWeb总结二十六、jsp简单标签标签库开发(二)
- 随笔------->2017
- Linux下SSH代理
- elasticsearch-自定义分析器
- Word插入Latex公式的几种方式~(TeXsWord、EqualX、Aurora、向Office插入LaTeX公式的工具)
- asp.net提示XX名不存在和单击click事件还一直在default.aspx而不是default.aspx.cs的問題