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();
        }
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值