首先谢谢你的提问。。。其实我也不怎么明白,但是恶补了下面向对象的视频,还是说下。。
索引器,主要用于封装内部集合或数组的类型中实现的。像数组通过下标来访问指定数组元素的值,这就是索引器的使用形式。其具体类内部的实现,其实和属性相似。
定义索引器
string this[int index]
{
get{}
set{}
}
下面附上代码(参考传智播客-c#面向对象17节索引器)- static void Main(string[] args)
- {
- int[] i = { 23, 34, 656, 87, 09 };
- int x = i[1]; //其实这里数组使用的下标,就是索引器的一种使用形式
- #region 使用自定义的索引器
- Person p1 = new Person();
- p1[1] = "小明"; //通过索引来赋值。
- Console.WriteLine("第一个人叫{0},第二个人叫{1}",p1[1],p1[2]);//通过结果可以看到,我们成功通过索引改变了私有字段firstName的值,得到了secondName的值
-
- Console.ReadKey();
- #endregion
- }
- /// <summary>
- /// 定义一个Person类,在其内部模拟索引器实现。
- /// </summary>
- class Person
- {
- private string firstName ="大毛"; //定义两个私有字段
- private string secondName = "二毛";
- public string this[int index] //这是实现索引器,string为索引器类型,this指Person类
- {
- set //其内部通过索引对私有字段赋值
- {
- if (index == 1) //当index值为1时,设置firstName的值
- {
- firstName = value;
- }
- else if (index == 2)
- {
- secondName = value;
- }
- else
- {
- throw new Exception("错误的序号");
- }
- }
- get //其内部实现得到私有字段的值
- {
- if (index == 1)
- {
- return firstName;
- }
- else if (index == 2)
- {
- return secondName;
- }
- else
- {
- throw new Exception("错误的序号");
- }
- }
- }
- }
复制代码 希望能帮到你。。。 |