c#静态类和静态类成员详解

c#静态类和静态类成员详解

ID:34552733

大小:38.50 KB

页数:5页

时间:2019-03-07

c#静态类和静态类成员详解_第1页
c#静态类和静态类成员详解_第2页
c#静态类和静态类成员详解_第3页
c#静态类和静态类成员详解_第4页
c#静态类和静态类成员详解_第5页
资源描述:

《c#静态类和静态类成员详解》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、C#静态类和静态类成员详解C#静态类和静态类成员用于创建无需创建类的实例就能够访问的数据和函数。静态类成员可用于分离独立于任何对象标识的数据和行为:无论对象发生什么更改,这些数据和函数都不会随之变化。当类中没有依赖对象标识的数据或行为时,就可以使用静态类。让我们来看看静态类:类可以声明为static的,以指示它仅包含静态成员。不能使用new关键字创建静态类的实例。静态类在加载包含该类的程序或命名空间时由.NETFramework公共语言运行库(CLR)自动加载。使用静态类来包含不与特定对象关联的方法。例如,创建一组不操

2、作实例数据并且不与代码中的特定对象关联的方法是很常见的要求。您应该使用静态类来包含那些方法。静态类的主要功能如下:1、它们仅包含静态成员。2、它们不能被实例化。3、它们是密封的。4、它们不能包含实例构造函数(C#编程指南)。因此创建静态类与创建仅包含静态成员和私有构造函数的类大致一样。私有构造函数阻止类被实例化。使用静态类的优点在于,编译器能够执行检查以确保不致偶然地添加实例成员。编译器将保证不会创建此类的实利。静态类是密封的,因此不可被继承。静态类不能包含构造函数,但仍可声明静态构造函数以分配初始值或设置某个静态状态

3、。何时使用静态类假设有一个类CompanyInfo,它包含用于获取有关公司名称和地址信息的下列方法。1classCompanyInfo23{45publicstringGetCompanyName(){return"CompanyName";}67publicstringGetCompanyAddress(){return"CompanyAddress";}89//...1011}不需要将这些方法附加到该类的具体实例。因此,您可以将它声明为静态类,而不是创建此类的不必要实例,如下所示:12staticclassComp

4、anyInfo1314{1516publicstaticstringGetCompanyName(){17return"CompanyName";}12publicstaticstringGetCompanyAddress(){3return"CompanyAddress";}45//...67}使用静态类作为不与特定对象关联的方法的组织单元。此外,静态类能够使您的实现更简单、迅速,因为您不必创建对象就能调用其方法。以一种有意义的方式组织类内部的方法(例如System命名空间中的Math类的方法)是很有用的。静态成员即

5、使没有创建类的实例,也可以调用该类中的静态方法、字段、属性或事件。如果创建了该类的任何实例,不能使用实例来访问静态成员。只存在静态字段和事件的一个副本,静态方法和属性只能访问静态字段和静态事件。静态成员通常用于表示不会随对象状态而变化的数据或计算;例如,数学库可能包含用于计算正弦和余弦的静态方法。在成员的返回类型之前使用static关键字来声明静态类成员,例如:8publicclassAutomobile910{1112publicstaticintNumberOfWheels=4;1314publicstaticin

6、tSizeOfGasTank1516{1718get1920{2122return15;2324}2526}2728publicstaticvoidDrive(){}2930publicstaticeventEventTypeRunOutOfGas;31//othernon-staticfieldsandproperties...3233}静态成员在第一次被访问之前并且在任何静态构造函数(如调用的话)之前初始化。若要访问静态类成员,应使用类名而不是变量名来指定该成员的位置。例如:34Automobile.Drive()

7、;12inti=Automobile.NumberOfWheels;C#技术基础试题——判断题1.在C#中,所有类都是直接或间接地继承System.Object类而得来的。  答案:对  2.在C#中,任何方法都不能实现多继承。  答案:错  3.在C#中,子类不能继承父类中用private修饰的成员变量和成员方法。  答案:对  3.在C#类中,this代表了当前类本身。  答案:错  4.菜单项标题中有含有带下划线的字符,这是快捷键。  答案:错  5.在C#Net中,窗体父子关系通过“属性”窗口来创建。  答案:

8、对  6.静态类和实例类的区别在于:静态类不需要初始化即可直接使用,实例类需要进行实例化,生成对象才可使用。  答案:对  7.使用Directory类的Move()方法可以删除文件。  答案:错  8.使用FileInfo类的Copy()方法可以复制文件。  答案:对  9.DataSet对象中的表可以和数据库中的表同名,也可以

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。