/*89,声明一个带有一个参数的索引器,参数要求范围是大写英文字母
索引器的形参定义了索引签名,索引签名由它的形式参数的数量和类型组成,元素类型和形式参数的名称都不是索引签名的组成部分。类的索引器的签名不能重名
。在索引的访问器中,不允许声明和索引器形式参数同名的局部变量,索引器和属性在概念上相似,但在下面几个方面有所不同:1,属性被它的名称所确定,索引器被
它的签名所确定,2,属性通过简单名称或成员来访问,索引器被它的签名所确定,3,属性可以是静态成员,索引器通常是实例成员,4,属性的get访问器相似于没有形式参数的方法,索引器的get访问器相似于有相同形参表的方法
5,属性的set访问器相似于有value形参的方法,索引器的set访问器相似于在相同的参数表中再增加value参数的方法*/
using System;
public class Team
{
string[ ] s_name = new string[26];
public string this[char c]//带一个参数的当前对象索引器
{
get
{
if (c < 'A' || c > 'Z')
throw new ArgumentException( );
return s_name[c - 'A'];
}
set
{
if (c < 'A' || c > 'Z')
throw new ArgumentException();
s_name[c - 'A'] = value;
}
}
public Team(int n, params string[] name)//带有一维字符串型参数数组的构造函数
{
for (int i = 0; i < n; i++)
s_name[i] = name[i];
}
public class Program
{
public static void Main( )
{
Team t1 = new Team(6, "abcd", "sdfgh", "rtyui", "abcd", "sdfgh", "rtyui");
for (char i = 'A'; i < 'G'; i++)
Console.WriteLine(t1[i]);
}
}
}