一周学会C#(索引一)

王朝c#·作者佚名  2006-01-08
宽屏版  字体: |||超大  

一周学会C#(索引一)

C#才鸟(QQ:249178521)

1.[]

· 索引提供[ ] 类的语法

w 总是一个实例成员,可以是虚拟的

w 没有ref/out 参数

struct StringSection

{

...

public char this [int at]

{

...

}

...

}

StringSection cord("csharp", 2, 6);

...

char first = cord[0]; // 'h'

...

Console.WriteLine(cord); // harp

索引的声明包括:可选的访问修饰符(例子中是public),返回值的类型(char),关键字this(不能省略),和函数参数类似的参数(不过是方括号,而不是函数的圆括号),然后是索引体。你不能使用静态索引,所以你不能在索引的声明中使用static关键字。

索引可以被声明为虚拟的,因此它可以在它的派生类中被重载。

索引的参数不能使用ref/out型参数。例如:

struct StringSection

{

public char this [ref int at]//错误

...

}

2.读和写

· 索引只能包含下列语句

w get { } 用来读

w set { } 用来写

struct StringSection

{

...

public char this [int at]

{

get { return ...; }

set { ... = value; }

}

...

}

cord[3] = 'e';

if (cord[3] == 'e') ...

索引的声明和属性一样:只能含有set/get语句。

当使用一个索引表达式进行读操作时,索引的get语句自动运行,例如在上面的例子中,表达式:

cord[3] == 'e'

系统会自动调用索引的get语句(3传递给索引的整型参数),返回一个char型值,这个char型值然后和'e'进行比较。

当使用一个索引表达式进行写操作时,索引的set语句自动运行,例如在上面的例子中,表达式:

cord[3] = 'e'

系统会自动调用索引的set语句(3传递给索引的整型参数),set语句可以取得表达式右边的值,它是通过value这个“关键字”来获得的。

3.只读或只写

· 只有get 语句的索引是

w 只读索引

· 只有set 语句的索引是

w 只写索引

struct StringSection

{

...

public char this [int at]

{

get { return ... }

}

...

}

StringSection cord("csharp", 1, 6);

...

if (cord[4] == 'k') {

cord[4] = 'k'; //错误

}

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