博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
this关键字的使用
阅读量:4677 次
发布时间:2019-06-09

本文共 2404 字,大约阅读时间需要 8 分钟。

this是C#中的一个特殊的关键字,有以下三种基本的用法:

(1)引用类的当前实例,以限定被相似的名称隐藏的成员。

 

///  ///Person 的摘要说明 ///  public class Person {     ///      /// 姓名     ///      public string Name { set; get; }       ///      /// /*******************************************/     /// /* this用法2:将对象作为参数传递到其他方法 */     /// /*******************************************/     ///      public void ShowName()     {         Helper.PrintName(this);     }           }   ///  /// 辅助类 ///  public static class Helper {       ///      /// 打印人名     ///      ///      public static void PrintName(Person person)     {         HttpContext.Current.Response.Write("姓名:" + person.Name + "
"); } }

 

(2)将当前对象作为参数传递到其他方法。

      frmExt testExt = new frmExt(this)

(3)

索引器是一种特殊的类成员,它能够让对象以类似数组的方式来存取,使程序看起来更为直观,更容易编写。  1、索引器的定义 C#中的类成员可以是任意类型,包括数组和集合。当一个类包含了数组和集合成员时,索引器将大大简化对数组或集合成员的存取操作。 定义索引器的方式与定义属性有些类似,其一般形式如下: [修饰符] 数据类型 this[索引类型 index] {     get{
//获得属性的代码} set{ //设置属性的代码} } 修饰符包括 public,protected,private,internal,new,virtual,sealed,override, abstract,extern. 数据类型是表示将要存取的数组或集合元素的类型。 索引器类型表示该索引器使用哪一类型的索引来存取数组或集合元素,可以是整数,可以是字符串;this表示操作本对象的数组或集合成员,可以简单把它理解成索引器的名字,因此索引器不能具有用户定义的名称。 例如: class Z{ //可容纳100个整数的整数集 private long[] arr = new long[100]; //声明索引器 public long this[int index] { get { //检查索引范围 if (index < 0 || index <= 100) { return 0; } else { return arr[index]; } } set { if (!(index < 0 || index <= 0)) { arr[index] = value; } } } 2、索引器的使用 通过索引器可以存取类的实例的数组成员,操作方法和数组相似,一般形式如下: 对象名[索引] 其中索引的数据类型必须与索引器的索引类型相同。例如: Z z=new z(); z[0]=100; z[1]=101; Console.WriteLine(z[0]); 表示先创建一个对象z,再通过索引来引用该对象中的数组元素。 3、接口中的索引器 在接口中也可以声明索引器,接口索引器与类索引器的区别有两个:一是接口索引器不使用修饰符;二是接口索引器只包含访问器get或set,没有实现语句。访问器的用途是指示索引器是可读写、只读还是只写的,如果是可读写的,访问器get或set均不能省略;如果只读的,省略set访问器;如果是只写的,省略get访问器。 例如: public interface IAddress { string this[int index]{
get;set;} string Address{
get;set;} string Answer(); } 表示所声明的接口IAddress包含3个成员:一个索引器、一个属性和一个方法,其中,索引器是可读写的。 4、索引器与属性的比较 索引器与属性都是类的成员,语法上非常相似。索引器一般用在自定义的集合类中,通过使用索引器来操作集合对象就如同使用数组一样简单;而属性可用于任何自定义类, 它增强了类的字段成员的灵活性。

 

转载于:https://www.cnblogs.com/chenyongblog/p/3228337.html

你可能感兴趣的文章
没有标题(1)
查看>>
React-Native学习手册----搭建基于ios平台的开发环境
查看>>
Android手机 Fildder真机抓包
查看>>
[stm32] 中断
查看>>
L1-043 阅览室
查看>>
我大学时代的好朋友要结婚了!
查看>>
RTP Payload Format for Transport of MPEG-4 Elementary Streams over http
查看>>
PAT-1134. Vertex Cover (25)
查看>>
git 命令图解
查看>>
分布式存储系统可靠性系列三:设计模式
查看>>
this关键字的由来及使用
查看>>
两个时间相差多少 .net中的timespan应用
查看>>
递归 换零钱问题——由打靶子问题引申
查看>>
Python-函数基础
查看>>
Extensible Messaging and Presence Protocol (XMPP) 简介
查看>>
Farm Irrigation
查看>>
windows平板的开发和选型
查看>>
无平方因子的数(数论初步) By ACReaper
查看>>
C语言截取字符串
查看>>
如何查自己的账单
查看>>