静态构造函数

/*------------------------------------------------------------ 静态构造函数 (P112) --------------------------------------------------------------*/

// ***********************************************************************************************************************************************
// **
// ** ❤ 构造函数没有返回值
// ** ❤ 静态构造函数没有访问修饰符①
// ** ❤ 静态构造函数不能带任何参数,一个类只能有一个静态构造函数②
// ** ❤ 静态构造函数只能访问类的静态成员,不能访问实例成员③
// ** 
// **
// ** 注意:1.把字段声明为只读类型,表示其值只能在构造函数中设置④
// **      2.这段代码使用了Microsoft在FrameWork类库中支持的两个有用的结果System.DateTime和System.Drawing.Color:
// **         DateTime结构实现了静态属性Now(返回当前的时间)和实例属性DateOfWeek(计算出某个日期是星期几)
// **
// ***********************************************************************************************************************************************


using System;

namespace Wrox.ProCSharp.StaticConstructorSample
{
    class UserPreperences
    {
        public static readonly ConsoleColor BackColor;
        int temp = 0;

        static UserPreperences()  //①②
        {
            DateTime now = DateTime.Now;

            if (now.DayOfWeek == DayOfWeek.Saturday || now.DayOfWeek == DayOfWeek.Sunday)
            {
                BackColor = ConsoleColor.Green;  //④③(不能访问temp)
            }
            else
            {
                BackColor = ConsoleColor.Red;  //④③(不能访问temp)
            }
        }

        public static void Main()
        {
            Console.WriteLine("UserPreperences.BackColor is: {0}", BackColor);
            Console.ReadKey();

            return;
        }
    }
}
原文地址:https://www.cnblogs.com/gyt-xtt/p/3641969.html