修饰符,⽤来类型或者成员的关键字。修饰符可以指定⽅法的可⻅性。
public: 同⼀程序集(DLL或EXE)中的任何其他代码或引⽤该程序集的其他程序集都可
以访问该类型或成员。同一项目
private: 只有同⼀类或结构中的代码可以访问该类型或成员。类中访问
protected: 只有同⼀类或结构或者此类的派⽣类中的代码才可以访问该类型或成员。子类中访问
internal: 同⼀程序集中的任何代码都可以访问该类型或成员,但的代码不可以。
protected internal: 在⼀程序集中,protected internal体现的是internal的性质;在其他程序集中,protected internal体现的是protected的性质。
public 和private修饰字段和⽅法的时候,表⽰该字段或者⽅法能不能通过对象去访问,只
有public的才可以通过对象访问,private(私有的)只能在类模板内部访问。
protected 保护的,当没有继承的时候,它的作⽤和private是⼀样的,当有继承的时候,
protected表⽰可以被⼦类访问的字段或者⽅法
public class ...
class ...
相关信息
前者可以在别的项⽬下访问,后者不⾏
1、添加别的项目的引用 using System.Collections.Generic;
2、引入命名空间
3、把类设置为public
new
隐藏继承的成员
abstract 使⽤abstract修饰的类为抽象类,抽象类只能是其他类的基类,不能与sealed、static⼀起使⽤。
abstract可以修饰抽象类中的⽅法或属性,此时,⽅法或属性不能包含实现,且访问级别不能为私有。
抽象类不能被实例化。
sealed
使⽤sealed修饰的类为密封类,密封类⽆法被继承,不能和abstract、static⼀起使⽤。
当sealed⽤于⽅法或属性时,必须始终与override⼀起使⽤。
static
使⽤static修饰的类为静态类,静态类所有成员都必须是静态的,不能与abstract、sealed
⼀起使⽤。
static可以修饰⽅法、字段、属性或事件,始终通过类名⽽不是实例名称访问静态成员,静态字段只有⼀个副本。
静态类不能被实例化。
const
使⽤const关键字来声明某个常量字段或常量局部变量,必须在声明常量时赋初值。
不能与static⼀起使⽤,常量默认是static的,常量字段只有⼀个副本。
readonly
使⽤readonly关键字来声明只读字段。
只读字段可以在声明或构造函数中初始化,每个类或结构的实例都有⼀个独⽴的副本。
可以与static⼀起使⽤,声明静态只读字段。
静态只读字段可以在声明或静态构造函数中初始化,静态常量字段只有⼀个副本。
示例代码
c#//base.cs 基类
class Base
{
public readonly int hp = 100;
public Base()
{
}
public Base(int hp)
{
this.hp = hp;
}
}
c#//使用 Program.cs
Base b = new Base(200);
Console.WriteLine(b.hp);
b.hp = 300;
virtual
virtual关键字⽤于修饰⽅法、属性、索引器或事件声明,并使它们可以在派⽣类中被重写。
默认情况下,⽅法是⾮虚拟的。 不能重写⾮虚⽅法。
virtual修饰符不能与static、abstract、private或override修饰符⼀起使⽤。
override
要扩展或修改继承的⽅法、属性、索引器或事件的抽象实现或虚实现,必须使⽤override
修饰符。
重写的成员必须是virtual、abstract或override的。