修饰符用于限定类型以及类型成员的申明,c#中有13种修饰符,按功能可分为三部分:存取修饰符,类修饰符和成员修饰符.
存取修饰符:
public:存取访问不受限制.
private:只有包含该成员的类可以存取.当前类才能访问
internal:只有当前工程可以存取.只限于类所在的命名空间(不包括子类)
protected:只有包含该成员的类以及继承的类可以存取.
partial关键字:
类修饰符:
abstract:抽象类,可以被指示一个类只能作为其它类的基类.必须被继承和重写的
sealed:密封类,指示一个类不能被继承.防止该类被其它类继承
成员修饰符:可以将类、结构或接口的定义拆分到两个或多个源文件中。每个源文件包含类定义的一部分,编译应用程序时将把所有部分组合起来
abstract:指示该方法或属性没有实现.只能在抽象类中声明
const:指定域或局部变量的值不能被改动.
event:声明一个事件.
extern:指示方法在外部实现.
override:对由基类继承成员的新实现.
readonly:指示一个域只能在声明时以及相同类的内部被赋值.
static:指示一个成员属于类型本身,而不是属于特定的对象.
virtual:指示一个方法或存取器的实现可以在继承类中被覆盖.
静态类和类成员用于创建无需创建类的实例就能够访问的数据和函数。静态类成员可用于分离独立于任何对象标识的数据和行为:无论对象发生什么更改,这些数据和函数都不会随之变化。当类中没有依赖对象标识的数据或行为时,就可以使用静态类。
静态类型属于类
非静态属于对象
用static关键字符标识的程序元素是静态的,不用static标识的程序元素是非静态.两者的区别在于:静态的东西是在类型加载初始时初始化的,并且与类相关.非静态东西一般放在实例的构造函数中初始化,它是与特定类的实例相关的.
抽象方法与虚方法的区别
1.abstract方法只能在抽象类中声明,virtual则不是。
2.abstract方法必须在派生类中重写,而virtual则不必
3.abstract方法不能声明方法实体,
abstract public void SD();
虚方法则可以
public virtual void sdf()
{
Console.WriteLine("A");
}
4.虚方法可以实现多态,而抽象方法不可以。