成员声明性规则
1.Protected internal(意思是protected或者internal),在成员声明是同时选择protected和internal两个修饰符.protected internal的意思是"只有本程序内或者继承于该类的类型可以访问"
2.Namespaces隐式地具有共有访问级别.在声明Namespaces的时候不允许用访问级别修饰符.
3.在编译单元或者Namespaces声明的类型可以具有public或者internal访问级别,默认为internal访问级别.
4.类成员可以有五种访问级别,默认为private访问级别(注意,一个作为类成员定义的类型可以有任意五种访问级别中的一个,但是作为namespace成员定义的类型只能是public或者internal访问级别).
5.结构成员可以具有public,internal,private访问级别,默认是private访问级别.因为结构是隐式封闭的.结构中的结构类型成员(换句话说,不是那个结构的继承.译注:是组合不是继承)不能有protected或者protected internal访问级别.(注意作为结构的成员声明的类型可以具有public,internal或者private访问级别,但是作为命名空间成员申明的类型只能有public或者internal访问级别).
6.接口和枚举成员隐式地具有public访问级别.接口和枚举成员不能有访问修饰符.
7.注意ref和out参数修饰符都是签名的部分.因此,F(int)和F(ref int)都是唯一的签名.另外,返回类型和params修饰符不是签名的部分,所以不能仅仅根据返回类型或者是否包含params修饰符来判定重载.
8.常量,字段,属性,事件或者类或结构中的类型 隐藏了基类中的同名成员.
类或结构的方法隐藏了基类中的同名非方法成员和具有相同签名的方法成员(方法名和参数个数,形式和类型).
类或者结构中的index隐藏了基类中具有相同签名的index(参数个数和类型)
操作符的声明规则使得不可能在派生类中声明一个具有和基类同样签名的操作符.所以,操作符永远不会相符覆盖.
2.Namespaces隐式地具有共有访问级别.在声明Namespaces的时候不允许用访问级别修饰符.
3.在编译单元或者Namespaces声明的类型可以具有public或者internal访问级别,默认为internal访问级别.
4.类成员可以有五种访问级别,默认为private访问级别(注意,一个作为类成员定义的类型可以有任意五种访问级别中的一个,但是作为namespace成员定义的类型只能是public或者internal访问级别).
5.结构成员可以具有public,internal,private访问级别,默认是private访问级别.因为结构是隐式封闭的.结构中的结构类型成员(换句话说,不是那个结构的继承.译注:是组合不是继承)不能有protected或者protected internal访问级别.(注意作为结构的成员声明的类型可以具有public,internal或者private访问级别,但是作为命名空间成员申明的类型只能有public或者internal访问级别).
6.接口和枚举成员隐式地具有public访问级别.接口和枚举成员不能有访问修饰符.
7.注意ref和out参数修饰符都是签名的部分.因此,F(int)和F(ref int)都是唯一的签名.另外,返回类型和params修饰符不是签名的部分,所以不能仅仅根据返回类型或者是否包含params修饰符来判定重载.
8.常量,字段,属性,事件或者类或结构中的类型 隐藏了基类中的同名成员.
类或结构的方法隐藏了基类中的同名非方法成员和具有相同签名的方法成员(方法名和参数个数,形式和类型).
类或者结构中的index隐藏了基类中具有相同签名的index(参数个数和类型)
操作符的声明规则使得不可能在派生类中声明一个具有和基类同样签名的操作符.所以,操作符永远不会相符覆盖.