[毕业生的商业软件开发之路]C#类型成员样式
2011-08-04 13:40
411 查看
静态成员
使用关键字“static”修饰的类型成员就是静态的,类型的字段、属性、方法、事件、构造函数都可以是静态的。例如在上面的PeopleClass中使用了以下代码定义了一个静态方法。public static int CalculateAge( DateTime birthday ) { return DateTime.Now.Subtract(birthday).Days / 365; } |
静态成员类型无需创建对象实例即可通过“类型名称.成员名”的方式调用。比如以下代码就能调用CalculateAge方法。
DateTime dtm = new DateTime(1980, 2, 14); int age = PeopleClass.CalculateAge(dtm); |
PeopleClass instance = new PeopleClass(); DateTime dtm = new DateTime(1980, 2, 14); int age = instance.CalculateAge(dtm); |
例如以下代码中定义了静态方法“Sum”和静态字段“Value”,
public class MyClass { public static int Value = 100 ; public static int Sum(int a, int b) { return a + b; } } |
public class OtherClass : MyClass { } |
静态字段
对于静态字段,是可以赋值的,而且静态字段作用范围是整个程序,相当于全局变量,比如在任意地方修改了此处的静态变量“Value”的值后,其他地方获得的字段值就是修改后的值。静态构造函数
被“static”修饰的无参数构造函数就是类型的静态构造函数,例如对于上面的PeopleClass类型中就使用了以下代码定义了一个静态构造函数。static PeopleClass() { System.Console.WriteLine("Start"); } |
静态构造函数适用于延时进行系统初始化的操作,这能加快系统的启动速度。
注意,静态构造函数必须是没有参数的,而且肯定是私有的,不能设置可访问级别。
实例成员
没有被“static”关键字修饰的类型成员就是实例成员,比如PeopleClass类型中定义了一个ToString方法,其代码如下。public override string ToString() { return _Code + " " + _Name; } |
PeopleClass instance = new PeopleClass( ); instance.ToString( ) ; |
虚拟成员
被关键字“virtual”修饰的成员类型是虚拟成员,比如以下代码就包含了一个名为“Sum”的虚拟函数。public class MyClass { public virtual int Sum(int a, int b) { return a + b; } } |
抽象成员
被关键字“abstract”修饰的类型成员就是抽象成员。抽象成员只能是属性、方法和索引器。以下代码就定义了一个抽象方法。public abstract int Sum(int a, int b) ; |
定义抽象类型和定义接口的方法类似,只需要写出成员的声明即可,但还需要写出抽象成员的可访问性。
抽象成员必须出现在抽象类中,而且在从抽象类派生新类型时,所有的抽象方法必须重写以填充方法体。
抽象成员和虚拟成员是有区别的,抽象成员不能定义任何实质的功能,必须被重载;而虚拟成员必须包含完整的代码结构,可以包含实质功能,可以不被重载。[袁永福版权所有]
常数成员
被关键字“const”修饰的成员字段为常数字段,可以使用“类型名称.字段名”来引用常数。比如以下代码就包含了一个常数public class MyClass { public const double PI = 3.1415926; } |
相关文章推荐
- [毕业生的商业软件开发之路]C#类型成员样式
- [毕业生的商业软件开发之路]C#类型样式
- [毕业生的商业软件开发之路]C#类型成员
- [毕业生的商业软件开发之路]C#类型样式
- [毕业生的商业软件开发之路]C#类型成员 推荐
- [毕业生的商业软件开发之路] C#类型2
- [毕业生的商业软件开发之路]C#数据类型转换
- 毕业生的商业软件开发之路--C#数据类型
- [毕业生的商业软件开发之路]C#数据类型 推荐
- [毕业生的商业软件开发之路]C#表达式以及判断语法结构 推荐
- [毕业生的商业软件开发之路]C#语法基础结构 推荐
- [毕业生的商业软件开发之路]C#进阶建议 推荐
- [毕业生的商业软件开发之路]C#进阶建议
- 毕业生的商业软件开发之路 --- C#基本语法-C#代码模块逻辑框架
- [毕业生的商业软件开发之路]C#可访问级别 推荐
- [毕业生的商业软件开发之路]C#语言简介 推荐
- 毕业生的商业软件开发之路 ---- C#语言简介
- [毕业生的商业软件开发之路]C#中的Main函数
- [毕业生的商业软件开发之路]C#表达式以及判断语法结构
- [毕业生的商业软件开发之路]Windows窗体设计概念及原则