C#学习笔记--this关键字和索引器

本文详细介绍了C#中的this关键字及其三种常见用法,包括区分成员和局部变量、作为参数传递以及在声明索引器中的应用。同时,文章探讨了索引器的概念,展示了如何通过索引器实现类成员的访问,以及索引器与传统点运算符访问方式的对比。此外,还讨论了索引器的安全性和重载,以及与属性的异同点。
摘要由CSDN通过智能技术生成


一、this关键字

在C#中,this关键字有以下3种常见的用法:

  1.用在类的属性、实例方法或实例构造方法中,区分成员名和本地变量(或参数)。下面的示例声明一个名为Myclass的类,类中包括一个实例字段myVal和一个实例构造函数,该构造函数带一个名为myVal的参数,在方法中,通过this可以在语义上区分成员名myVal和参数名myVal。(注意:在实际编程中是不建议参数名和字段名相同的,这样做降低了代码的易读性,这里只是为了说明this关键字的用法而已)。

复制代码
复制代码
 1     class MyClass
 2     {
 3 // 声明一个名为"myVal"的整型字段  4 public int myVal = 10;  5  6 // 声明一个构造函数,该函数带一个名为"myVal"的参数  7 public MyClass(int myVal)  8  {  9 // "this"表示MyClass类的当前实例 10 // 在这里通过this可以在语义上区分成员名myVal和参数名myVal 11 this.myVal += myVal; 12  } 13 }
复制代码
复制代码

  2.this表示的是当前对象,可以把它作为实参传递到其它方法。例如下面声明一个类MyClass1,它包括一个实例成员方法Compute,而Compute带一个类型为MyClass的参数,该参数在方法中参加运算。

复制代码
复制代码
 1     class MyClass1
 2     {
 3 // 声明一个计算的方法,参数类型为MyClass  4 public static int Compute(MyClass mc)  5  {  6 int resutl = 0;  7 if (mc != null)  8  {  9 resutl += mc.myVal; 10  } 11 return resutl; 12  } 13 }
复制代码
复制代码

  下面在类MyClass的构造方法中添加了一个本地变量的声明,该变量初始化的值来自MyClass1的Compute方法的计算结果。而这时就可以将this作为实参传递给调用方法了:

复制代码
复制代码
 1     class MyClass
 2     {
 3 // 声明一个名为"myVal"的整型字段  4 public int myVal = 10;  5  6 // 声明一个构造函数,该函数带一个名为"myVal"的参数  7 public MyClass(int myVal)  8  {  9 // "this"表示MyClass类的当前实例 10 // 在这里通过this可以在语义上区分成员名myVal和参数名myVal 11 this.myVal += myVal; 12 13 // 使用this作为当前对象的实参传递给Compute方法 14 int res = myVal + MyClass1.Compute(this); 15  } 16 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值