博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C#中索引器与属性的联系和区别
阅读量:6995 次
发布时间:2019-06-27

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

C#中索引器与属性有什么联系和区别?

索引器

具有集合性质的类一般应提供索引器,作用:在对象之外公开集合中的某一项

索引器:其实就是带参数的属性,在任何可以声明属性的地方都可以声明索引器,语法如下:

[访问修饰符] 数据类型 this[数据类型 标识符] {  get{}  set{} } eg:private int[] arr=new int[100];     public int this[int i]     {  get{return arr[i];}  set{arr[i]=value;}     }

1.索引器是属性的一种,它本质上和属性一样是方法。

2.索引器的类型和集合元素的类型一致

3.索引器没有自定义的名字(this关键字作为它的名字),而属性只能是自定义的名字

4.索引器至少有一个参数eg:this[int i],而属性不能带有参数,属性中的set有一个隐含的参数value

5.索引器可以重载,因此一个类中可以有多个索引器,调用时索引器通过数组下标索引,索引器是针对集合类型成员变量的,属性是不可以重载的   eg:Stu[0]=1;      Stu[1]=2;

6.在接口中也可以声明索引器,接口索引器与类索引器的区别有两个:一是接口索引器不使用修饰符;二是接口索引器只包含访问器get或set,没有实现语句。访问器的用途是指示索引器是可读写、只读还是只写的,如果是可读写的,访问器get或set均不能省略;如果只读的,省略set访问器;如果是只写的,省略get访问器。在覆盖(override)实现索引器时,应该用base[E]来存取父类的索引器。

eg: public interface IAddress  {      string this[int index]{get;set;}      string Address{get;set;}      string Answer();  }   一个索引器、一个属性和一个方法,其中,索引器是可读写的。

7.属性可以为静态成员或实例成员,索引器必须为实例成员

属性

1.属性是封装的一种方法,是专门来控制访问性的一种语法结构,成员变量定义为私有类型(因为变量是表示对象特征的,不可以随便修改,为了安全性。)

2.Value是关键字,它的类型取决于属性的数据类型。

3.属性的访问修饰符总是public

4.当修改属性或为属性赋值时,将值先传给value,再赋给成员变量

5.属性的类型分为三类:只读(get)、读写(get&&set)、只写(set)

6.Set:set访问器,Get:get访问器

7.属性名与成员变量同名,书写时首写字母必须大写

8.属性的语法格式:   访问修饰符  返回类型 属性名   {  get{}  set{}    }   eg:private string name;      public string Name      {  set{return name;}  get{name=value;}      }    

 

转载于:https://www.cnblogs.com/daisy-thq/p/3359944.html

你可能感兴趣的文章
一个JS对话框,可以显示其它页面,
查看>>
IDEA ctrl+alt+L 格式化快捷键无效时解决
查看>>
自定义Chrome浏览器
查看>>
前端小知识
查看>>
echo使用说明,参数详解
查看>>
双边滤波算法的简易实现bilateralFilter
查看>>
qt5.6.3下使用firebird
查看>>
子弹实例化的代码
查看>>
Cgroup
查看>>
URAL 2027 URCAPL, Episode 1 (模拟)
查看>>
hadoop install start-dfs.sh 失败
查看>>
windowsXP用户被禁用导致不能网站登录
查看>>
css左固定右自适应常用方法
查看>>
手机安全卫士——软件管理-用户程序和系统程序
查看>>
MySQl创建用户和授权
查看>>
django框架的基础知识点《贰》
查看>>
[NHibernate]代码生成器的使用
查看>>
重新安装nginx注意事项
查看>>
【转载】mysql常用函数汇总
查看>>
Kinect For Windows V2开发日志九:侦测并绘制人体骨架
查看>>