CSDN博客

img zhf7878

一周学会C#(索引一)

发表于2004/1/12 17:12:00  659人阅读

一周学会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'; //错误

}

 

0 0

相关博文

我的热门文章

img
取 消
img