静态构造函数是C#的一个新特性,在编程过程中用处并不广,它的主要目的是用于初始化一些静态的变量
因为这个构造函数是属于类的,而不属于任何一个实例,所以这个构造函数只会被执行一次,而且是在创建此类的第一个实例或引用任何静态成员之前,由.NET自动调用。
在程序中我们可以这样写:
class SimpleClass
{
static public Object object;
// Static constructor
static SimpleClass()
{
// Initialize static parameter
somthing
}
}
也可以这样写,这和上面的做法其实没有区别:
class SimpleClass
{
static public Object object = new Object();
}
在使用静态构造函数的时候应该注意以下几点:
1、静态构造函数既没有访问修饰符,也没有参数。
--因为是.NET调用的,所以像public和private等修饰符就没有意义了。
2、在创建第一个类实例或任何静态成员被引用时,.NET将自动调用静态构造函数来初始化类。
--也就是说我们无法直接调用静态构造函数,也不可能知道静态构造函数何时会被调用。
3、一个类只能有一个静态构造函数。
4、无参数的构造函数可以与静态构造函数共存。
--尽管参数列表相同,但一个属于类,一个属于实例,所以不会冲突。
5、最多只运行一次。
6、静态构造函数不可以被继承。
7、如果没有写静态构造函数,而类中包含带有初始值设定的静态成员,那么编译器会自动生成默认的静态构造函数。
调用例子:
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());
}
}
}

最新文章

  1. RabbitMQ学习系列(四): 几种Exchange 模式
  2. Intent属性详解二 Action、Category
  3. javaweb回顾第八篇如何创建自定义标签
  4. 用ConfigParser模块读写配置文件——Python
  5. linux网络编程_1
  6. 如何循序渐进地学习Javascript
  7. CoreText 使用教程
  8. 4.3 spring-嵌入式beans标签的解析
  9. PRINCE2重要性--光环国际培训
  10. CentOS7更换国内源
  11. [Solution] 885. Spiral Matrix Ⅲ
  12. sftp免密登录
  13. Pyqt5+python+ErIC6+QT designer
  14. BZOJ1299[LLH邀请赛]巧克力棒——Nim游戏+搜索
  15. JavaScript位运算符 2
  16. NOIP 华容道
  17. python学习笔记——线程threading (一)
  18. Hexo+GitHub+Netlify一站式搭建属于自己的博客网站
  19. hdu2553N皇后问题(dfs,八皇后)
  20. Visual Studio 2013中用VSIX创建项目模版

热门文章

  1. Python自动化运维之16、线程、进程、协程、queue队列
  2. 黑马程序员—C语言的判断语句
  3. 一个md5加密的工具类,用的虚拟机的包,不需要额外导包
  4. UIImageView设置为圆形
  5. JLRoutes--处理复杂的URL schemes-备
  6. 初窥struts2(二)OGNL表达式
  7. 【编程实践】连续正整数之和(华东师范大学OJ-3025)
  8. 程序自动生成Dump文件()
  9. DEDECMS调用最新评论
  10. 如何打开mo文件并修改 PoEdit