首页 > 代码库 > 索引器
索引器
一、索引器
C#中为了访问类的数组成员更加方便,更加直观,提供了索引器。
假设一个类如下:
class a{public int[] a = new int[20];}
我们实例化他为_a,若想访问a的某个元素,其语法如下:
a _a = new a();int m = _a.a[5];
如果类a定义了索引器,那么我们可以用如下的方法访问:
int m = _a[5];
这样显然代码更加简洁,逻辑上更直观。
下面代码展示了如何定义并使用一个索引器:
定义一个含有索引器的类:
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 6 namespace indexrTest 7 { 8 class xingxiIndexClass//作用是根据传入的字符串返回下标 9 {10 string[] days = { "a","b","c","d","e","f","g","h","i"};11 private int getDay(string testDay)12 {13 for(int j=0;j<days.Length;j++)14 {15 if(days[j] == testDay)16 {17 return j;18 }19 }20 throw new ArgumentOutOfRangeException(testDay, "testDay must be in the form \"Sun\", \"Mon\", etc");21 }22 public int this[string day]23 {24 get { return getDay(day); }25 }26 }27 }
通过索引器访问类成员:
using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace indexrTest{ class Program { static void Main(string[] args) { fanxingClass<string> s = new fanxingClass<string>(); s[0] = "这是一个索引器"; Console.WriteLine(s[0]); xingxiIndexClass week = new xingxiIndexClass(); Console.WriteLine(week["a"]); Console.WriteLine(week["测试范围之外的天"]); } }}
索引器的参数类型几乎可以是任意类型。定义规则是
[访问权限修饰符] [返回数据类型] this[参数类型 参数名]{get{}set{}}
索引器
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。