<C#任务导引教程>练习十一

/*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]);
        }
    }
}

原文地址:https://www.cnblogs.com/zhangyongjian/p/3626889.html