C#学习之修饰符
来源:互联网 发布:弱覆盖优化思想 编辑:程序博客网 时间:2024/05/18 00:13
修饰符作用:
修饰符用于限定类型以及类型成员的申明。
C#中修饰符种类:
C#中有13种修饰符,按功能可分为三部分:存取修饰符,类修饰符和成员修饰符.
存取修饰符:
public:存取访问不受限制.
private:只有包含该成员的类可以存取.当前类才能访问
internal:只有当前工程可以存取.只限于类所在的命名空间(不包括子类)
protected:只有包含该成员的类以及继承的类可以存取.
类修饰符:
abstract:抽象类,可以被指示一个类只能作为其它类的基类.必须被继承和重写的
sealed:密封类,指示一个类不能被继承.防止该类被其它类继承
partial:部分类,可以将一个类、结构或接口的定义拆分到两个或多个源文件中,最终编译时将合并成一个文件,且各个部分不能分散在不同程序集中。
成员修饰符:
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.虚方法可以实现多态,而抽象方法不可以。
修饰符使用注意事项:
1、同时对一个类作abstract和sealed的修饰是没有意义的,也是被禁止的。
2、当一个类或方法没有被任何修饰符修饰时,默认为internal。
3、const和Readonly的区别:const在编译时必须能够明确知道该字段的值,其值是硬编码到程序中去的,修改了该类型成员后需要重新编译才能使修改生效。而readonly是运行时只读,内容在运行时确定,所以修改了readonly类型成员后无需重新编译即可生效。Readonly不能修饰局部变量,const可以。
Sealed:修饰类时表示该类不能够被继承,修饰方法时表示该方法不能被覆写。
Static:修饰类时表示该类时静态类,不能够实例化该类的对象,既然不能实例化该类,那么这个类也就不能够含有对象成员,即该类所有成员为静态;修饰类成员时,该成员为类成员,只能通过【类.成员名】的方式访问
当static修饰构造函数时,构造函数不能含有任何参数,不能含有修饰符,构造函数不能对对象成员进行初始化操作。但是能够对静态成员进行初始化或者调用。不能保证他在什么时候执行,却能保证在第一次使用类型前执行。在静态构造函数中初始化的静态成员为最终初始化结果。
Virtual:修饰方法成员,表示虚方法。父类可以含有该类的实现,子类可以覆写该函数。
下面是C#中修饰符的具体意义:
- C#学习之修饰符
- 黑马程序员之c#学习笔记:总结C#修饰符,成员修饰符和类修饰符
- C#之修饰符-----abstract
- C#关键字之修饰符
- AngularJS学习之修饰符
- C# sealed修饰符学习笔记
- C#入门经典学习-总结修饰符
- C#学习笔记-方法和修饰符
- 【C#学习】访问限制修饰符
- c#访问修饰符之“protected internal”
- C#之修饰符-----virtual和override
- C#老生常谈之访问修饰符
- 简述c#之sealed 修饰符
- 简述c#之sealed 修饰符
- C#之internal访问修饰符
- C#之访问修饰
- 学习C#修饰符:类修饰符和成员修饰符
- 学习C#修饰符:类修饰符和成员修饰符
- 这个冬天,他们实现了梦想中的华丽转身…
- java.util.Collections.copy()方法注意点
- vc 读取 XML文件的一个简单实例,以备查用
- 聚合分析和分组
- 监控远程桌面连接
- C#学习之修饰符
- Oracle 索引管理
- hyperic HQ安装配置
- 2010年总结(三)
- ORA-12528: TNS: 监听程序所有适用的例程都不允许建立
- opencv2.2中利用GPU加速行人检测的算法代码
- 五子棋游戏
- lockf的用法
- win32 sdk 显示位图简单示例