C#索引器

王朝学院·作者佚名  2016-08-27
窄屏简体版  字體: 小  |  中  |  大  |  超大  

索引器(Indexer)是C#引入的一个新型的类成员,它使得类中的对象可以像数组那样方便、直观的被引用。索引器非常类似于属性,但索引器可以有参数列表,且只能作用在实例对象上,而不能在类上直接作用。定义了索引器的类可以让您像访问数组一样的使用 [ ] 运算符访问类的成员。(当然高级的应用还有很多,比如说可以把数组通过索引器映射出去等等)

索引器的语法:

1、它可以接受1个或多个参数

2、使用this为索引器的名字

3、参数化成员属性:包含set、get方法。

[访问修饰符] 数据类型 this[数据类型 标识符]

{

get{};

set{};

}

例:public class Indexsy

{PRivate string[] array ;

public Indexsy(int num)

{

array = new string[num];

for (int i = 0; i < num; i++)

{

array[i] = "Array"+i;

}

}

public string this[int num]

{

get { return array[num]; }

set { array[num] = value; }

}

}

///索引器调用

Indexsy sy = new Indexsy(10);

Response.Write(sy[5]);//输出Array5

多参数的实例

public class Indexsy

{

private string[] array ;

public Indexsy(int num)

{

array = new string[num];

for (int i = 0; i < num; i++)

{

array[i] = "Array"+i;

}

}

public string this[int num, string con]

{

get {

if (num == 6)

{

return con;

}

else

{

return array[num];

}

}

set

{

if (num == 6)

{

array[num] = con;

}

else

{

array[num] = value;

}

}

}

}

//方法调用

Indexsy sy = new Indexsy(10);

sy[5,"10"] = "更换set值";

Response.Write(sy[5,""]+" "+sy[6,"更换内部参数"]+" "+sy[8,""]);//输出为更换set值 更换内部参数 Array8,

索引器和数组比较:

(1)索引器的索引值(Index)类型不受限制

(2)索引器允许重载

(3)索引器不是一个变量

索引器和属性的不同点

(1)属性以名称来标识,索引器以函数形式标识

(2)索引器可以被重载,属性不可以

(3)索引器不能声明为static,属性可以

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航