类型成员定义:
类型的可访问性:
internal: 仅对定义程序集中的所有代码可见。类型默认可见性为internal;
public class ThisIsAPublicType { }
internal class ThisIsAnInternalType{ }
class ThisIsAlsoAnInternalType{ }
internal class ThisIsAnInternalType{ }
class ThisIsAlsoAnInternalType{ }
[assembly: InternalsVisibleTo("Wintellect, Publickey=123456789...90abcdef")]
[assembly: InternalsVisibleTo("Microsoft, PublicKey=b77a5c56...1934e089")]
将当前程序集中定义的internal类型暴露给Wintellect程序集和Microsoft程序集。
成员的可访问性:
private: 定义类型以或嵌套类型中的方法访问
protected: private + 派生类型
internal: 定义程序集中的方法访问。
protected internal: protected + internal
public: 任意程序集的任意方法访问
成员默认可见性为private.接口类型的成员默认可见性为public.
C#编译器要求原始成员和重写成员具有相同的访问性。CLR允许放宽成员的可访问性限制,但是不允许收紧。
静态类:
静态类唯一的作用是将一组相关的成员组合到一起。
static只能应用于类,不能应用于结构(值类型)。因为CLR总是允许值类型实例化。
静态类必须直接从System.Object派生,不能实现任何接口,只能定义静态成员(字段,方法,属性和事件),本身不能作为字段,方法参数和局部变量使用。
public static class AStaticClass { public static void AStaticMethod() { } public static String AStaticProperty { get { return _aStaticField; } set { _aStaticField = value; } } private static String _aStaticField; public static event EventHandler AStaticEvent; }