5种访问修饰符:
关键字public, 公有访问。不受任何限制。
关键字private ,私有访问。只限于本类成员访问,子类,实例都不能访问。
关键字protected ,保护访问。只限于本类和子类访问,实例不能访问。
关键字internal ,内部访问。只限于本项目内访问,其他不能访问。
关键字protected internal ,内部保护访问。只限于本项目或是子类访问,其他不能访问
-------------------------------------------------------------------------------------------------------------------------------
关键字abstract,抽象,例如抽象类:abstract class Customer {}
如果方法中含有abstract关键字,表示该方法为抽象方法,其派生类中必须实现此方法注意:实例方法中可以使用类变量,而类方法中不能使用实例变量
实例属性只能使用实例变量,类属性也只能使用类变量
关键字Class
关键字Virtual,虚方法,表示任何派生类都可以重写此方法并定义它们自己的实现
public virtual decimalCalculateDiscount(decimal dAmt)
{ returndAmt; }
关键字override,重写,表示该方法是重写父类的方法
public override stringToString()
{
//return base.ToString();
return "ABCD";
}
关键字Static,共享成员,能够被类的所有实例所共享 。
使用 static 修饰符声明属于类型本身而不是属于特定对象的静态成员,用于指定哪些类型成员是公用的
共享成员访问:可以使用类本身、一个对象引用、一个类的实例来调用,为了区分,建议用 类名来调用共享成员。非共享成员访问:可通过this访问,this代表当前执行的实例。
注意:实例方法中可以使用类变量,而类方法中不能使用实例变量
实例属性只能使用实例变量,类属性也只能使用类变量
static 修饰符可用于类、字段、方法、属性、运算符、事件和构造函数,但不能用于索引器、析构函数或类以外的类型。
如果一个类被声明为 static,那么此类型不可被实例化,它的所有类型成员都是公用的,也即我们常说的工具类。例如我们经常使用的 Console 类和 Enumerable 类
关键字Class,创建类
关键字冒号(:),namespace WindowsFormsApplication1
{
//这是自动创建的类
class Class1 { }
//这里也可以手动添加类
public class Class2 { }
}
关键字delegate ,委托,在使用委托的时候,你可以像对待一个类一样对待它。即先声明,再实例化。public class Class2 : FatherClass
{// 使用base关键字来调用基类的构造函数,子对象被创建时,父类 默认构造函数会自动被调动,// 但是,可以人为指定要调用父类中的哪个构造函数
public Class2() : base ()
{}}
只是有点不同,类在实例化之后叫对象或实例,但委托在实例化后仍叫委托。
委托的声明也可以在类的里面,甚至是任何一个可以声明类的地方。
namespace Vczx.ProCSharp.Exc
{ delegate double MathsOp( double x );
//class defination here
}
关键字event,事件,它封装了委托类型的变量,
使得:在类内部,不管你声明它是public还是protected,它总是private的。在类外部,注册“+=”和注销“-=”的访问限定符与你在声明事件时使用的访问符相同。
public delegate void BoilHandler(int param); //声明委托
public event BoilHandler BoilEvent; //声明事件