C#具有以下几种访问修饰符:
public,internal,protected,protected internal,private
public:用public修饰表示访问无限制;
internal:用internal修饰表示只可以在当前程序集中访问;
protected:用protected修饰表示只可以在该类以及该类的派生类中访问;
protected internal:用protected internal修饰表示只可以在当前程序集或该类的派生类中访问;
private:用private修饰表示只可以在当前类中访问;
除了protected internal,每种类型或成员仅允许使用一个访问修饰符。namespace不允许使用访问修饰符,不存在任何访问限制。编译单元或命名空间中的类型或成员可以使用public或internal,其默认访问权限为internal。
对于其他类型的嵌套成员,其默认以及可用访问修饰符如下所示:
enum(枚举类型):其成员的默认以及可用访问修饰符均为public;
interface(接口):其成员的默认以及可用访问修饰符均为public;
class(类):其成员的默认访问修饰符为private,可用访问修饰符为public,protected,internal,private,protected internal;
struct(结构体):其成员的默认访问修饰符为private,可用访问修饰符为public,internal,private;