C# static 静态构造函数

static   静态构造函数,

1、用于对静态数据的初始化

2、前面不能有参数不能有修饰符,不能被调用

3、当类被加载时,类的静态构造函数自动被调用,最多只执行一次

class Program
    {
        private static int count = 0;
        static Program()
        {
            Console.WriteLine("我是静态构造函数,我被加载了!");
            count++;
            Console.WriteLine(count);
        }
        public Program()
        {
            Console.WriteLine("我是公共构造函数,我被加载了!");
            count++;
        }
        static void Main(string[] args)
        {
            Program o1 = new Program();//在此处两个构造函数都调用
            Console.WriteLine("----------");
            Program o2 = new Program();//只调用第二个构造函数
            Console.WriteLine(count);
            Console.Read();
        }
    }
    
    /* 代码运行结果:
    
    我是静态构造函数,我被加载了!
    1
    我是公共构造函数,我被加载了!
    ----------
    我是公共构造函数,我被加载了!
    3
    
    */

还有就是关于构造函数前面不能有访问修饰符,默认的是public,如果改为private和protected之类的修饰符的话是不行,因为private的访问权限只能使本类中,这就说明了如果外部要实例化此类的一个对象的话就不行了,其他的同理。

时间: 2024-07-28 13:48:52

C# static 静态构造函数的相关文章

cs——静态构造函数

定义如下测试类 public class Test { public static int msA = 10; static Test() { System.Console.WriteLine(string.Format("msA0:{0}", msA)); msA = msA + msA; System.Console.WriteLine(string.Format("msA1:{0}", msA)); } public Test() { msA = 30; Sy

关于C#的静态类和静态构造函数

静态构造函数是C#的一个新特性,其实好像很少用到.不过当我们想初始化一些静态变量的时候就需要用到它了.这个构造函数是属于类的,而不是属于哪里实例的,就是说这个构造函数只会被执行一次.也就是在创建第一个实例或引用任何静态成员之前,由.NET自动调用. class SimpleClass { // Static constructor static SimpleClass() { // } } 在使用静态构造函数的时候应该注意几点: 1.静态构造函数既没有访问修饰符,也没有参数.因为是.NET调用的

C# 静态构造函数使用

当我们想初始化一些静态变量的时候,就需要用到静态构造函数了.这个静态构造函数属于类,而不属于实例,就是说这个构造函数只会被执行一次,即:在创建第一个实例或引用任何静态成员之前,由.NET自动调用. 现在碰到这样一个场景:提供一个静态方法,这个静态方法在不同的地方使用,涉及到一个参数值不同,而其他内容都完全一致.如果是将静态方法的内容复制出来做成另外一个方法,代码冗余太多,做法不可取.使用静态构造函数处理静态变量,则可以尽最大程度简化代码.如下示例: /// <summary> /// 基类 /

C#静态构造函数

静态构造函数用于初始化任何静态数据,或用于执行仅需执行一次的特定操作.在创建第一个实例或引用任何静态成员之前,将自动调用静态构造函数. 静态构造函数具有以下特点: 静态构造函数既没有访问修饰符,也没有参数. 在创建第一个实例或引用任何静态成员之前,将自动调用静态构造函数来初始化类. 无法直接调用静态构造函数. 在程序中,用户无法控制何时执行静态构造函数. 静态构造函数的典型用途是:当类使用日志文件时,将使用这种构造函数向日志文件中写入项. 静态构造函数在为非托管代码创建包装类时也很有用,此时该构

java中的关键字static(静态变量)和final定义常量

1 package point; 2 3 class Point { 4 5 int x = 0; 6 int y = 0; 7 static int z = 100; // 定义静态变量z,类变量 8 static final double PI = 3.1415926;// final定义常量,它的值在运行时不能被改变 9 10 Point(int a, int b) { 11 //PI=3.1415926; 12 /* 13 * 当使用静态常量的时候,不能在构造函数中初始化, 因为静态时,

C# 静态构造函数的使用

class StaticClass { public static string Name { get; set; } static StaticClass() { Name = "Delphi"; } public StaticClass() { Console.WriteLine("Default constructor"); } public static void Test() { Console.WriteLine("hello,wrold&qu

C#中static静态变量的用法

使用 static 修饰符声明属于类型本身而不是属于特定对象的静态成员static修饰符可用于类.字段.方法.属性.运算符.事件和构造函数,但不能用于索引器.析构函数或类以外的类型 静态全局变量 定义:在全局变量前,加上关键字 static 该变量就被定义成为了一个静态全局变量. 特点: A.该变量在全局数据区分配内存. B.初始化:如果不显式初始化,那么将被隐式初始化为0. 静态局部变量 定义:在局部变量前加上static关键字时,就定义了静态局部变量. 特点: A.该变量在全局数据区分配内存

静态构造函数

先看一道常见题目,以下代码的执行结果是什么? class A { public static int X = B.Y + 1; static void Main(string[] args) { Console.WriteLine(X); } } class B { public static int Z = 10; public static int Y; static B() { Console.WriteLine(Z); Y = A.X + 1; } } 一.定义 由名称可知,静态构造函数

c#静态构造函数 与 构造函数 你是否还记得?

构造函数这个概念,在我们刚开始学习编程语言的时候,就被老师一遍一遍的教着.亲,现在你还记得静态构造函数的适用场景吗?如果没有,那么我们一起来复习一下吧. 静态构造函数是在构造函数方法前面添加了static关键字之后形成的,并且没有修饰符(public,private),没有参数. 静态构造函数有哪些特点呢: 静态构造函数没有修饰符修饰(public,private),因为静态构造函数不是我们程序员调用的,是由.net 框架在合适的时机调用的. 静态构造函数没有参数,因为框架不可能知道我们需要在函