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();
原文地址:https://www.cnblogs.com/sunmarvell/p/12190576.html