C#.Net 静态构造器使用详解
C#.Net 静态构造器使用详解静态构造函数是C#的一个新特性,在编程过程中用处并不广,它的主要目的是用于初始化一些静态的变量。
因为这个构造函数是属于类的,而不属于任何一个实例,所以这个构造函数只会被执行一次,而且是在创建此类的第一个实例或引用任何静态成员之前,由.NET自动调用。 在程序中我们可以这样写: C# Code: class SimpleClass { static public Object object; // Static constructor static SimpleClass() { // Initialize static parameter somthing } } //也可以这样写,这和上面的做法其实没有区别: class SimpleClass { static public Object object = new Object(); } //来源:C/S框架网(www.csframework.com) QQ:1980854898 在使用静态构造函数的时候应该注意几点: 1、静态构造函数既没有访问修饰符,也没有参数。 --因为是.NET调用的,所以像public和private等修饰符就没有意义了。 2、在创建第一个类实例或任何静态成员被引用时,.NET将自动调用静态构造函数来初始化类。 --也就是说我们无法直接调用静态构造函数,也不可能知道静态构造函数何时会被调用。 3、一个类只能有一个静态构造函数。 4、无参数的构造函数可以与静态构造函数共存。 --尽管参数列表相同,但一个属于类,一个属于实例,所以不会冲突。 5、最多只运行一次。 6、静态构造函数不可以被继承。 7、如果没有写静态构造函数,而类中包含带有初始值设定的静态成员,那么编译器会自动生成默认的静态构造函数。 调用例子: C# Code: using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace test1_constrator { class Program { static void Main(string[] args) { Class1 o1 = new Class1(); Class1 o2 = new Class1(); } } class Class1 { private static int count = 0; static Class1(){ count++; System.Console.Write("Static" count.ToString()); } public Class1() { count++; System.Console.Write("Public" count.ToString()); } } } 结果:count=3 本站责任编辑,原文:http://baike.baidu.com/view/2634573.htm 扫一扫加作者微信
参考文档:
C#.Net反射(Reflaction)技术实例详解 Delphi程序调用C#.Net编译的DLL并打开窗体(详解) C#.Net窗体多重继承构造器及Load事件执行顺序详解 C#.Net对象内存模型及堆/栈数据结构详解 (一) C#.Net对象内存模型及堆/栈数据结构详解 (二) C#.Net对象内存模型及堆/栈数据结构详解 (三) C#.Net对象内存模型及堆/栈数据结构详解 (四) C#构造函数,静态构造函数,私有构造函数详解 C#.Net使用线程池(ThreadPool)与专用线程(Thread) C#.Net COM交操作性 - 强类型RCW和弱类型CCW详解 C#.Net组件开发 - 设计时使用自定义属性编辑器持久化对象 C#.NET 监视操作系统打开程序(使用Window消息实现全局系统勾子) C#.NET C/S结构版本自动升级解决方案2.0详解 (一) C#.Net组件开发 - 使用Attach to Process实时调试设计器代码 .NET RichTextBox控件使用详解
其它资料:
什么是C/S结构? | C/S框架核心组成部分 | C/S框架-WebService部署图 | C/S框架-权限管理 | C/S结构系统框架 - 5.1旗舰版介绍 | C/S结构系统框架 - 功能介绍 | C/S结构系统框架 - 产品列表 | C/S结构系统框架 - 应用展示(图) | 三层体系架构详解 | C/S架构轻量级快速开发框架 | C/S框架网客户案例 | WebApi快速开发框架 | C/S框架代码生成器 | 用户授权注册软件系统 | 版本自动升级软件 | 数据库底层应用框架 | CSFramework.CMS内容管理系统 | |