• 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();
  • 相关阅读:
    HTTP 筛选器 DLL C:WindowsMicrosoft.NetFrameworkv4.0.30319aspnet_filter.dll 加载失败。数据是错误。
    win7(iis7)无法加载运行CSS文件的解决方法
    MVC异步消息推送机制
    查看目录下所有文件的行数
    解决 mac全屏时不能隐藏Dock工具栏 killall Dock
    jetty中传java参数(spring-io中的配置项)
    nginx代理前端项目
    【转】mackbook wifi卡死未响应的问题
    WeekMap WeakSet的用途
    每日新知2019-08-23
  • 原文地址:https://www.cnblogs.com/sunmarvell/p/12190576.html
Copyright © 2020-2023  润新知