C# 静态类

 static class D { }
    /// <summary>
    /// 静态类的特点
    /// 1.只能包含静态类成员
    /// 2.无法实例化,无法被继承,无法继承它类,该类为密封类
    /// 3.可以包含静态构造函数,不能包含实例构造函数
    /// </summary>
    static class A
    {


        //静态类不能有实例构造函数
        //public A() { 


        //}
        //const 字段的行为在本质上是静态的
        public const string FILE = "FILE";
        /// <summary>
        /// 1:静态类可以有静态构造函数,静态构造函数不可继承;
        ///2:静态构造函数可以用于静态类,也可用于非静态类;
        ///3:静态构造函数无访问修饰符、无参数,只有一个 static 标志;
        ///4:静态构造函数不可被直接调用,当创建类实例或引用任何静态成员之前,静态构造函数被自动执行,并且只执行一次。
        /// </summary>
        static A()
        {
            Console.WriteLine("静态构造函数A");
        }
        //静态类中不能有实例成员
        //public string Name { get; set; }


        //public void S() { 


        //}


        public static void MyMethodA()
        {
            Console.WriteLine("静态方法A");
        }


    }
    //静态类不能被继承
    //class B : A { }


    class C
    {


        public static string Name = "abcd";
        public int age;
        //静态函数必须无参数
        static C()
        {


            Console.WriteLine("静态构造函数C" + Name);
        }
        //静态方法不可以调用实例方法和实例属性
        public static void StaticMethod()
        {


            Console.WriteLine("静态方法C" + Name);
        }
        //实例方法可以调用静态方法和静态属性
        public void MyMethodC()
        {
            StaticMethod();
            Console.WriteLine("方法C" + Name);
        }
    }


    class Program
    {
        static void Main(string[] args)
        {
            //   当定义的类不需要进行实例化时,我们使用静态类;如果需要实例化对象,需要继承等特性时,应该使用非静态类,并且将统一使用的变量和方法设为静态的,那么所有实例对象都能访问。
            A.MyMethodA();
            new C().MyMethodC();
            Console.WriteLine(A.FILE);
            Console.ReadLine();
        }
    }

猜你喜欢

转载自blog.csdn.net/luochenlong/article/details/80346009