1、不能把类型定义为protected、internal和protected internal,因为这些修饰符对于包含在命名空间中的类型来说是没有意义的。因此这些修饰符只能应用于成员
例:
public class OuterClass
{ protected class InnerClass
{ //etc. }
}
2、定义接口
[attributes] [modifiers] interface identifier [:base-list] {interface-body}[;]
说明:
· attributes(可选):附加的定义性信息。
· modifiers(可选):允许使用的修饰符有new和四个访问修饰符。分别是:new、public、protected、internal、private。在一个接口定义中同一修饰符不允许出现多次,new修饰符只能出现在嵌套接口中,表示覆盖了继承而来的同名成员。The public, protected, internal, and private修饰符定义了对接口的访问权限。
· 指示器和事件。
· identifier:接口名称。
· base-list(可选):包含一个或多个显式基接口的列表,接口间由逗号分隔。
· interface-body:对接口成员的定义。
· 接口可以是命名空间或类的成员,并且可以包含下列成员的签名: 方法、属性、索引器 。
· 一个接口可从一个或多个基接口继承。
注意:
(1)、与Java不同,C#中的接口不能包含域(Field)
(2)、在C#中,接口内的所有方法默认都是公用方法
(3)、在一个公共接口的基接口中指定一个私有或内部的接口是错误的。
(4)、一个接口直接或间接地从它自己继承是错误的
(5)、接口的成员必须是方法、属性、事件或索引器。接口不能包含常数、字段、运算符、实例构造函数、析构函数或类型,也不能包含任何种类的静态成员。
(6)、接口成员默认访问方式是public。接口成员定义不能包含任何修饰符