一、结构与接口
1.结构
C#的结构体类型(或称为结构)是用户自定义类型的一种, 它为用户将实际应用中数据类型不同,但互相联系的数据看作 一个整体提供了类型支持。结构体是值类型的数据类型,可定义在任意命名空间或类中,使用时在其定义域内使用。语法定义如下:
结构修饰符 struct 结构名
{
}
详细用法如下:
public struct Student//结构体类型名
{
//各种成员...:
//成员定义格式为: 访问修饰符 成员类型 成员名称
//例:
public string name;
int age;
}
2.接口
接口定义了属性、方法和事件,这些都是接口的成员。接口只包含了成员的声明。成员的定义是派生类的责任。接口提供了派生类应遵循的标准结构。接口使得实现接口的类或结构在形式上保持一致。抽象类在某种程度上与接口类似,但是,它们大多只是用在当只有少数方法由基类声明由派生类实现时。接口本身并不实现任何功能,它只是和声明实现该接口的对象订立一个必须实现哪些行为的契约。抽象类不能直接实例化,但允许派生出具体的,具有实际功能的类。
在C#中声明接口时,使用inferface关键字,定于语法如下:
interface Information//定义接口
{
string Code{get;set;} //编号属性及实现
void ShowInfo();//输出信息
}
二、异常处理
C#程序中,可以使用异常处理语句处理异常,主要的异常处理语句有try...catch语句、try...catch...finally语句和throw语句。
三、委托
1.委托的基本概念
委托是面向对象编程的基本思想之一,就是将具有共同特征的某一类具体对象抽象为类。
2. 委托类型的定义
委托是类型,就好像类是类型一样。与类一样,委托类型必须在被用来创建变量以及类型对象之前声明。
代码如下:
delegate void MyDel(int x);
委托类型声明:
(1)以deleagate关键字开头。
(2)返回类型+委托类型名+参数列表。
3. 声明委托变量
4. 初始化委托变量
(1) 使用new运算符
new运算符的操作数的组成如下:
委托类型名
一组圆括号,其中包含作为调用列表中的第一个成员的方法的名字。方法可以实例方法或静态方法。
(2)使用快捷语法
快键语法,它仅由方法说明符构成。之所以能这样,是因为在方法名称和其相应的委托类型之间有隐式转换。
四、索引器
1.索引器的概念
索引器允许类或结构的实例就像数组一样进行索引。无需显式指定类型或实例成员,即可通过运算符[]设置或检索索引值。索引器类似于属性,不同的是索引器的访问器需要使用参数。
2.索引器的定义
在 C# 中可以使用 this 关键字作为属性名声明索引器,并在方括号内声明参数。索引器也可以使用 C# 中任何有效的访问修饰符,在索引器中为 get 和 set 访问器前指定不同的访问修饰符即可。和属性的定义一样,索引器内也需要定义 get 和 set 访问器,其中 get 访问器返回值。 set 访问器分配值。