最新消息:把Logo换了一下,虽然丑了点,但至少完全是自己的设计

C#索引器的定义

CSharp 宇托 195浏览 暂无评论

在C#中,索引器可以看成是属性的一种特殊形式。它和属性一样,可以定义getset。定义好索引器之后,它可以使类像数组一样访问,但它和数组还是有区别的。

索引器和属性的区别

  • 索引器以函数签名方式this来标识,而属性采用名称来标识,名称可以任意
  • 索引器可以重载,而属性不能重载。只要索引器的函数签名不同,就可以定义多个索引器。
  • 索引器不能声明为静态(static),而属性可以有静态属性。索引器永远属于实例成员。

索引器和数组的区别

  • 索引器的索引值类型不限定为整数,可以是其它类型;而数组的索引只能是整数。
  • 索引器可以重载,可以有多个;而数组的索引只能有一个。
  • 索引器没有直接数据存储的地方;而数组有。

索引器定义的代码例子

C#
class IndexTest
{
    private Dictionary<int, string> values = new Dictionary<int, string>();
    // 基本索引
    public string this[int i]
    {
        get { return values[i]; }
        set { values[i] = value; }
    }
    // 索引重载
    public string this[string i]
    {
        get { return values[int.Parse(i)]; }
        set { values[int.Parse(i)] = value; }
    }
    // 多维索引
    public string this[int i, int j]
    {
        get { return values[i] + values[j]; }
    }
}

转载请注明:宇托的狗窝 » C#索引器的定义

发表我的评论
取消评论

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址