C#界面基础教程三
接口可以包含一个和多个成员。这些成员可以是方法、属性、指标和事件,但不能是常数,域,运营商,构造函数,析构函数,而且不能包含任何静态成员。接口定义创建新的定义空间,和接口定义直接包含新成员的定义在定义空间。
描述:
1,接口成员是从基接口继承的成员,以及由接口本身定义的成员。
2。接口定义可以定义零个或多个成员。该接口的成员必须是方法、属性、事件、索引器。接口不能包含常量、字段、运算符、实例构造函数、析构函数,或类型,也不能包含任何静态成员。
三.定义一个接口,包含一个:方法,属性,事件,和每一种可能的成员索引。
4。接口成员的默认访问方法是公共的。接口成员的定义不能包含任何修饰符,例如,在成员定义之前不添加抽象的、公共的、保护的、内部的、私有的、虚拟的、重载的或静态的修饰符。
5。接口的成员不能互相命名。继承的成员不需要重新定义,但是接口可以定义从它们继承的相同名称的成员。当我们说接口的成员覆盖继承的成员时,它不会引起错误,但是编译器会给出警告。关闭警告的方法是向成员定义添加一个新关键字。但是如果你不包括父接口的成员,使用新关键字会导致编译器发出警告。
6,该方法的名称必须与在同一接口中定义的所有属性和事件的名称不同。此外,该方法的签名必须与在同一接口中定义的所有其他方法的签名不同。
7,属性或事件的名称必须与在同一接口中定义的所有其他成员的名称不同。
8。一个索引器的签名必须区别于在同一接口中定义的所有索引器的签名。
9、属性(属性)接口中的方法声明的返回类型(返回类型),该标识符(标识符),和形式参数列表(参数列表)与那些在一个类的方法声明相同含义。接口的方法声明不允许指定一个方法体,并声明通常是以一个分号。
10。接口的属性声明的访问字符对应的类属性声明的访问特性,通常必须使用此访问主体的分号。因此,无论属性是读,写,读,或写,访问器完全定义。
11,接口索引声明中的属性(属性)、类型(类型)和表单参数列表(正式参数列表)与类的索引声明具有相同的含义。
在下面的示例中的接口imytest包括指标、事件、方法、属性P,和其他成员:
接口imytest {
将此{ index } get;set;}
激发事件:E;
空f(int值);
字符串get;get;set;}
}
中的委托EventHandler(object sender,EventArgs e);
在下面的示例中的接口istringlist包含每个可能的类型成员的接口:方法,属性,事件,和一个索引。
中的委托stringlistevent(istringlist发件人);
istringlist公共接口
{
添加空(字符串S);
int计数{;};}
stringlistevent改变事件;
将此{ index } get;set;}
}
接口成员的全名
接口成员也可以使用全名(完全限定名)。接口的全称是由这个组成的。接口的名称被添加到小圆点中,并带有成员的名称,例如,用于以下两个接口:
接口控制{
虚空漆();
}
接口itextbox:IControl {
无效的gettext(文本);
}
油漆的全名是控制。油漆和gettext的全称是itextbox。gettext。当然,姓名的名字必须在接口定义,例如,不合理的使用itextbox。漆。
如果接口是名称空间的成员,则全名也必须包含名称空间的名称。
命名空间系统
{
idatatable公共接口{
对象克隆();
}
}
克隆方法的全名是系统。idatatable.clone。
接口是定义的,下一个是如何访问接口。参见下一节——访问接口