• C#静态成员


    静态成员:标识为static的字段,方法,属性,构造函数,事件,就是静态成员

    class Dog
    
    {
    
        static int Num;
    
    }

    静态成员将被类的所有实例共享(即公共财产),所有实例都访问同一内存位置。

    静态成员将直接通过类名访问,不需要实例化。(它们仅和整个类有关)。

    静态成员和实例成员分开保存。

    静态成员的生存期:独立于任何实例,没有实例也可以访问。其初始化语句在任何静态成员使用之前调用。

       例如:系统方法内的字段均使用静态成员。不需要实例化,直接调用。

    静态函数:

        1)静态函数也独立于任何实例,没有实例也可以调用。

        2)静态函数不能访问实例成员,仅能访问其他静态成员

    静态构造函数:

    1)静态构造函数用于初始化静态字段。(为静态成员而生)

    2)在引用任何静态成员之前,和创建任何实例之前调用

    3)与类同名,使用static,无参数,无访问修饰符

    静态类:

    1、如果类只包含了静态的方法和属性,并且标识为static;

    2、静态类不能创建实例,不能被继承;;

    3、可以为静态类定义一个静态构造函数。

    静态类主要用于基础类库(如数学库(Math类))和扩展方法。

    如何扩展方法:

    1、如果有源代码,直接添加一个新方法

    2、如果不能修改但是也不是密闭类,可以派生子类扩展

    3、如果以上条件都不满足,可以使用静态类扩展方法

    扩展要求:

    扩展方法所属的类,必须是static类

    扩展方法本身必须是static方法

    扩展方法的第一个参数类型,必须是this+要扩展的类名

        //对Cat类 进行扩展
    
        static class aaa
    
        {
    
            static public void ab(this Cat cat)
    
            {
    
                Console.WriteLine("13:");
    
            }       
    
        }
    
    //调用
    
     Cat b = new Cat("66");
    
     b.ab();
  • 相关阅读:
    测试
    unittest发送测试报告邮件
    unittest生成测试报告
    Navicat连接Oracle详细教程
    Windows 2012 安装 Oracle 11g 报错:[INS-13001]环境不满足最低要求。
    Windows server 2012安装oracle11g(32/64位)步骤
    ElasticSearch和solr的差别
    HashMap和Hashtable的区别
    final关键字所修饰的类有什么特点
    springboot测试的时候插入数据: error performing isolated work; SQL [n/a]; nested exception is org.hibernate...
  • 原文地址:https://www.cnblogs.com/sunmarvell/p/12190576.html
Copyright © 2020-2023  润新知