首页 > 学院 > 开发设计 > 正文

C#静态类,静态构造函数,静态变量

2019-11-17 02:53:22
字体:
来源:转载
供稿:网友

C#静态类,静态构造函数,静态变量

本篇体验静态变量、静态构造函数和静态类。

静态变量

静态变量位于栈上,它是一个全局变量,在编译期就已经生成。

    public class Cow
    {
        public static int count;
        PRivate int id;
        public Cow()
        {
            id = ++count;
        }
    }

客户端创建2个Cow的实例,并打印静态变量count。

        static void Main(string[] args)
        {
            Console.WriteLine(Cow.count);
            Cow cow1 = new Cow();
            Cow cow2 = new Cow();
            Console.WriteLine(Cow.count);
        }

结果:02

○ 在创建Cow实例之前,全局就已经有了count这个静态变量○ 如果在static之前用private修饰,就不可以通过"类名.静态字段名"来访问静态字段,但全局的静态字段始终存在

在堆和栈上的表现,如下图:

14

静态构造函数

在Cow类中添加一个静态构造函数。

    public class Cow
    {
        public static int count;
        private int id;
        public Cow()
        {
            id = ++count;
        }
        static Cow()
        {
            count = new Random().Next(100);
        }
    }

在构造函数和静态构造函数中,都对Cow的静态字段赋值。现在我们想了解静态构造函数在什么时候触发。是在用构造函数创建实例的时候触发吗?会不会在设置Cow的字段或属性值的时候触发?在客户端,通过打印静态字段count的值来了解静态构造函数什么时候被触发。

        static void Main(string[] args)
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表