您当前的位置: 首页 >  c#

暂无认证

  • 0浏览

    0关注

    101061博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

C#索引器-索引器和属性的区别

发布时间:2010-11-22 16:02:00 ,浏览量:0

属性和索引器的差别:一个对象只有一个属性值,所以要存放多个值必须实例化多个对象(通常情况下,实例化一个数组的对象,接着实例化的对象赋给这个数组)。一个对象对应的索引是一个数组,并且可以存放多个数值或字符串,所以只需要实例化一个对象就可以存放以及访问多个存储内容。 using System; using System.Collections.Generic;

namespace aaa {

public class arrClass{ //通过构造方法以及属性进行赋值    private string name;//定义一个字段    public string Name{ //定义一个属性,通过属性来修改name字段的值     get{return name;} //通过Name来获取name的值     set{name=value;} //通过Name将值赋给name字段    }    public arrClass(string name){ //构造函数,实例化一个对象就执行一次     this.Name=name; //把实例化对象带进来的参数name赋值给Name属性    } }

class indexer{ //创建一个索引器类    private string[] name=new string[10];//定义一个索引字段数组,也可以为int[]    public string this[int index]{ //定义索引器,string是索引器类型,this来定义索引器     get{return name[index];} //index就是string里面的数值,获取name[index]的值,例如获取name[3]的值     set{name[index]=value;} //将值赋值给name[index]。例如把字符串"dengyun"赋值给name[3]    } }

class index1{ //这里又创建了一个索引器类    private int[] age=new int[10]; //这边索引器字段的值为int型的    public int this[int index]{     get {return age[index];} //获取age[index]的值     set {age[index]=value;} //赋值    } }

class MainClass{    public static void Main(string[] args) //主方法一定要为static    {     indexer b=new indexer(); //实例化一个索引对象b,b有点类似数值b[10],这是索引器的特别之处     b[0]="张三";//这里面b[index]的index为0,赋值“张三”给b[0]     b[1]="李四";//赋值“李四”给b[1]     b[2]="王五";//赋值“王五”给b[2]     Console.WriteLine(b[0]);//输出b[0],可以理解为数值就存放在数组b中。     Console.WriteLine(b[1]);     Console.WriteLine(b[2]);        arrClass[] a = new arrClass[10];//实例化一组对象,实例化一整个数组的对象     a[0]=new arrClass("张三");//实例化一个对象,将它存入实例化的数组a中,它的存放位置是a[0]     a[1]=new arrClass("李四");     a[2]=new arrClass("王五");     Console.WriteLine(a[0].Name);//通过对象来访问自己的属性值来输出数值     Console.WriteLine(a[1].Name);     Console.WriteLine(a[2].Name);        index1 i = new index1(); //和带属性的类相比,索引器类只需要实例化一个对象     i[0]=18;     i[1]=22;     i[9]=9;     i[10]=10;//索引超出了,报错。     Console.WriteLine(i[0]);     Console.WriteLine(i[1]);     Console.WriteLine(i[9]);     Console.WriteLine(i[10]);     Console.Read();    } } }

关注
打赏
1655516835
查看更多评论
立即登录/注册

微信扫码登录

0.0837s