C基础——索引器

C基础——索引器

C#索引器支持对象和数组一样使用下标的方式被访问其中的字段

public 数据类型 this[参数类型 index...]
{
    get
    {
        ...
    }
    set
    {
        ...
    }
}
  • 索引器可重载
  • 索引器声明的时候也可带有多个参数

例子

class C {
    static public int size = 10;
    private string[ ] arr = new string[size];
    // 索引器
    public string this[int index]
    {
        get
        {
            if (index >= 0 && index< arr.Length)
            {
                return arr[index];
            }
            else
            {
                return "";
            }
        }
        set
        {
            if (index >= 0 && index < arr.Length) { arr[index] = value; }
        }
    }
    // 重载 索引器
    public string this[string index]
    {
        get
        {
            int i = Int16.Parse(index);
            if ( i >= 0 && i < arr.Length)
            {
                return  arr[i];
            }
            else
            {
                return "-1";
            }
        }
        set
        {
            int i = Int16.Parse(index);
            if (i >= 0 && i < arr.Length) { arr[i] = value; }
        }
    }
    // 多参数
    public bool this[int index,string val]
    {
        get
        {
            return index >= 0 && index < arr.Length && arr[index] == val ? true:false;
        }
        set
        {
            arr[index] = $"{value}";
        }
    }
}

使用

C c = new C();
for (int i = 0; i < C.size; i++)
{
    c[i] = $"{i+1}";
}
for (int i = 0; i < C.size; i++)
{
    // 验证下标值是否与期望值一样
    Console.WriteLine(c[i, $"{i+1}"]);
}
for (int i = 0; i < C.size; i++)
{
    c[$"{i}"] = $"{C.size - (i + 1)}";
}
posted @ 2024-05-14 14:31  勤匠  阅读(22)  评论(0)    收藏  举报