1
第 8章 属性和索引器
8.1 属性
8.2 索引器
2
8.1.1 属性的定义
属性的定义形式为:
或,
3
8.1.2 属性访问器
1,get访问器
get访问器是一个不带参数的方法,它用于向外部返回属性成员的值。
它的基本格式为:
[修饰符 ] get{访问体 }
get访问器必须以一条 return语句结束,或者是一条异常抛出语句 throw。
4
2,set访问器
set访问器是一个带有单个参数并且返回类型为 void类型的方法,它用于处理类外部的写入值,其中参数类型就是属性的类型。
它的基本格式为:
[修饰符 ] set{访问体 }
set访问器带有一个特殊的关键字 value。
一个属性不一定需要既具备 get访问器,又具备 set访问器。
5
8.1.3 静态属性
如果属性在声明时指定了 static修饰符,那么该属性就是一个静态属性,否则,该属性为一个实例属性。
静态属性与特定的实例无关,而实例属性与类的特定实例相关。
访问静态属性成员时,如果采用成员访问形式( E.M),那么 E必须代表一个类型;以成员访问形式访问实例成员时,E必须代表一个实例。
6
8.1.4 虚拟、重载和抽象
对于一个非静态的属性,它的声明中可以包括 virtual或者 abstract修饰符,并且不要求每个访问器都是相同的。
属性也具有多态性,可以在基类的属性定义前添加修饰符 virtual,在派生类中重载属性的
get或 set访问器。
一个派生类中属性的虚访问器可以重载基类中的对应访问器,一个重载属性并不是声明了一个新的属性,而只是实现了一个属性中的虚访问器。
返回目录
7
8.2.1 索引器的定义
class 类名
{
[特征 ] [修饰符 ] 类型 this[索引参数表 ]
{
get
{ //代码体
}
set
{ //代码体
}
}
}
8
8.2.2 索引器的使用
1.索引器的使用
索引器的用法与数组大致相同。定义了一个索引器以后,就可以对对象使用方括号表示法
( [])来读、写对象中的值。
2.索引器的重载
用户可以自由选择字符串或其他类型做索引创建索引器。
索引值可以重载,这样索引给定集合时,可以按用户需要使用整数值或字符串值。
9
3.多索引器的使用
在同一个类中可以定义多个索引器。
多索引器在使用时,依靠索引器的参数表进行区分。
返回目录
第 8章 属性和索引器
8.1 属性
8.2 索引器
2
8.1.1 属性的定义
属性的定义形式为:
或,
3
8.1.2 属性访问器
1,get访问器
get访问器是一个不带参数的方法,它用于向外部返回属性成员的值。
它的基本格式为:
[修饰符 ] get{访问体 }
get访问器必须以一条 return语句结束,或者是一条异常抛出语句 throw。
4
2,set访问器
set访问器是一个带有单个参数并且返回类型为 void类型的方法,它用于处理类外部的写入值,其中参数类型就是属性的类型。
它的基本格式为:
[修饰符 ] set{访问体 }
set访问器带有一个特殊的关键字 value。
一个属性不一定需要既具备 get访问器,又具备 set访问器。
5
8.1.3 静态属性
如果属性在声明时指定了 static修饰符,那么该属性就是一个静态属性,否则,该属性为一个实例属性。
静态属性与特定的实例无关,而实例属性与类的特定实例相关。
访问静态属性成员时,如果采用成员访问形式( E.M),那么 E必须代表一个类型;以成员访问形式访问实例成员时,E必须代表一个实例。
6
8.1.4 虚拟、重载和抽象
对于一个非静态的属性,它的声明中可以包括 virtual或者 abstract修饰符,并且不要求每个访问器都是相同的。
属性也具有多态性,可以在基类的属性定义前添加修饰符 virtual,在派生类中重载属性的
get或 set访问器。
一个派生类中属性的虚访问器可以重载基类中的对应访问器,一个重载属性并不是声明了一个新的属性,而只是实现了一个属性中的虚访问器。
返回目录
7
8.2.1 索引器的定义
class 类名
{
[特征 ] [修饰符 ] 类型 this[索引参数表 ]
{
get
{ //代码体
}
set
{ //代码体
}
}
}
8
8.2.2 索引器的使用
1.索引器的使用
索引器的用法与数组大致相同。定义了一个索引器以后,就可以对对象使用方括号表示法
( [])来读、写对象中的值。
2.索引器的重载
用户可以自由选择字符串或其他类型做索引创建索引器。
索引值可以重载,这样索引给定集合时,可以按用户需要使用整数值或字符串值。
9
3.多索引器的使用
在同一个类中可以定义多个索引器。
多索引器在使用时,依靠索引器的参数表进行区分。
返回目录