C# Foundation---keyword:static & static constructor

 1 using  System;
 2 using  System.Collections.Generic;
 3 using  System.Text;
 4
 5 namespace  CSharpFoundationStudy
 6 {
 7    /**//*
 8     * 静态构造函数:
 9     *   (1)用于对静态字段、只读字段等的初始化。              
10     *   (2)添加static关键字,不能添加访问修饰符,因为静态构造函数都是私有的。        
11     *   (3)类的静态构造函数在给定应用程序域中至多执行一次:只有创建类的实例或者引用类的任何静态成员才激发静态构造函数
12     *   (4)静态构造函数是不可继承的,而且不能被直接调用。            
13     *   (5)如果类中包含用来开始执行的 Main 方法,则该类的静态构造函数将在调用 Main 方法之前执行。    
14     *   (6)任何带有初始值设定项的静态字段,则在执行该类的静态构造函数时,先要按照文本顺序执行那些初始值设定项。  
15     *   (7)如果没有编写静态构造函数,而这时类中包含带有初始值设定的静态字段,那么编译器会自动生成默认的静态构造函数。
16     */

17    
18    /**//*
19     * 定义一个类的时候,如果没有加任何修饰符,则默认为internal
20     * 如果在类中定义一个成员的时候,没有加任何修饰符,则默认是private.
21     * 另外protected访问权限指只能被继承者访问,与C++相同
22     */

23
24    //标记为sealed的类不能被继承
25    //静态构造函数实现单件模式
26    public sealed class SinglePattern
27    {
28        private static SinglePattern only;
29
30        public static SinglePattern Instance
31        {
32            get
33            {
34                return only;
35            }

36        }

37
38        //static函数中只能访问static成员,因为静态成员与函数是相对于类的,而非静态则是相对于某个具体对象的
39        //静态成员也不能通过this来访问
40        static SinglePattern()
41        {
42            Console.WriteLine("SinglePattern");
43            only = new SinglePattern();
44        }

45        
46        //屏蔽默认构造函数
47        private SinglePattern()
48        {
49        }

50    }

51}

转载于:https://www.cnblogs.com/simply-zhao/archive/2008/01/20/1046279.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值