private(私有的),
protected(受保护的),
internal(程序集内部的),
public(公开的),以及
protectde internal(只有本程序内或者继承于该类的类型可以访问)。
namespace(命名空间),
class(类),
struct(结构),
enum(枚举),
interface(接口),
delegate(委托),
function(函数),变量。
public:namespace和enum成员、interface的成员隐式的具有public修饰符.不能再显式添加其修饰符。private:class或struct中能被访问,class或struct中的成员如果不加修饰符则默认是private。protected:class或继承的class。比如在一个class Student中声明一个函数protected int Add(){ };在则只能在Student中用Add,或者在继承于Student的子类中用base.Add()来用num。但实例化class得到的对象不能用Add。比如Student s = new Student(); s.Add();这样是错误的。(注意:声明class、struct前是不能加protected修饰的,只能用public或internal。)internal:class或struct、interface如果不加修饰符则默认是internal,但也可以显示声明为internal或public(注:如果class、struct是在一个class中声明的也可以protected、private修饰,也就是说一个class中还可以嵌套的声明一个class)protected internal:protected和internal两个权限累加到一起了。(注意,由于struct是不能继承的,所以它的成员也不能由protected或protected internal修饰)class可访问性不能比基类更高。也就是说如果基类被internal修饰则子类只能用internal修饰。如果基类都public修饰子类可用internal也可用public。除了权限修饰符外还有四个修饰符sealed、abstract、virtual、partial(这四个修饰符可以和上面五个权限修饰符一起用,写在权限修饰符前面或后面都行):
sealed:密封。sealed使其密封,那么此方法无法再被重写。abstract:抽象。可用来修饰class和class中的成员。但必须是class被abstract修饰了,成员才能被abstract修饰。它表示此class是抽象类,不能实例化,必须被继承并重写抽象函数。virtual只能用来修饰class中的函数,表明是虚函数,虚函数除了可以被重写外其他时候跟一般函数一样。虚函数重不重写是可选的,不是必须的。partial:分部。通过使用关键字partial可以把一个class分开来写,可以在一个project中的不同文件中。在一个class特别大,由几个人合作写时这功能特别有用。private类型,不能使用public访问修饰符,不可有返回值。