符用于限定类型和类型成员的声明,C#中的13中修饰符按功能3分类:存取修饰符,类修饰符,成员修饰符
 
存取操作符
 
public: 存取不受限制
private:只有包含该成员的类可以存取
internal:  只有当前工程可以存取
protected:只有包含该成员的类以及继承的类可以存取
 
类修饰符:
abstract :可以被指示为一个类,只能作为其它类的基类, 不能实例化
sealed:指示一个类不能被继承
 
成员修饰符:
abstract :指示该方法或属性没有实现
只适用于成员函数,并且只能存在于一个abstract类中,说明本函数尚没有定义函数体,在非abstract的子类中其函数体必须被定义
const :指定域或局部变量的直不能被改动(只适用于类成员变量,一旦赋值就不能改变,且隐含是静态的)
event:声明一个事件 (事件成员,用于触发某个事件)
extent:指示方法在外部实现(只适用于成员函数,说明本函数在外部程序,如一个非操控dll中。)
override:对由基类继承成员的实现,
只适用于成员函数,说明本函数改写父类中的同名函数。调用时系统会在整个继承结构中找到最具体的类并执行此最具体类中的函数,不管当时的对象是保存在哪一个层次的类对象中。
readonly: 指示一个域只能在声明时以及相同类的内部被赋值(只适用于类成员变量)
static:指示一个成员属于类型本身,而不是属于特定的对象.(是一个类级别的成员,所有的成员共享,通过类名访问)
virtual:指示一个方法或存取器的实现可以在继承类中被覆盖.

只适用于成员函数,说明本函数可以在子类中被改写,也可以被隐藏,如果子类中没有重定义该函数,那就使用父类的函数体。一个abstract函数总是一个Virtual函数
new
只适用于成员函数,说明本函数隐藏父类中的同名函数。从此之后本函数不再处于父类同名函数的继承结构体系中,就如同在本类中定义了一个全新的不同名函数一样。
 
 
 
下面具体的分析几个常用的修饰符: 
public :关键字是类型类型成员的访问修饰符。
            公共访问是允许的最高访问级别,
             对访问公共成员  没有限制。
protected :关键字是一个成员访问修饰符。
            受保护成员在它的类中可访问并且可由派生类访问。
private :
             关键字是一个成员访问修饰符。
            私有访问是允许的最低访问级别。
           私有成员只有在声明它们的类和结构体中才是可访。
internal:
            关键字是类型和类型成员的访问修饰符。
             只有在同一程序集的文件中,
             内部类型或成员才是可访问的。
public: 意味着在其后声明的所有成员对所有的人都可以取。
private :关键字意味着除了该类型的创建者和类的内部成员函数之外,任何人都不能存取这些成员。
protect 它与private基本相似,只有一点不同:继承的类可以访问protected成员,但不能访问private成员
 
 
 
 
public对所有其它程序(包括自己所在的程序),以及子程序和包以外的程序都可见

private正好相反,对谁都不可见,除了自己所在程序
protect是对同一个包内,以及子程序可见
privat的变量和方法在哪个程序,那他只在此程序中可见
 
 
public会处理人际关系,爱说话,跟谁都熟
protected 只跟自家人和具有血缘关系的后代人熟 
private比较自闭,谁也不理
 
 

类或结构的默认访问类型是internal.
类中所有的成员,默认均为private。
接口默认访问符是internal
接口的成员默认访问修饰符是public,也不可能是其他访问修饰符
 
其它的修饰符还没有找到合适的例子!希望能通过理解学以致用 !