构造函数有“静态构造函数”与“实例构造函数”之分吗?
一本书上这样讲的,但是不明吧,有什么区别呢?

解决方案 »

  1.   

    C#构造函数是在创建给定类型的对象时执行的类方法。构造函数具有与类相同的名称,它通常初始化新对象的数据成员。不带参数的构造函数称为“默认构造函数”。 无论何时,只要使用 new 运算符实例化对象,并且不为 new 提供任何参数,就会调用默认构造函数。除非类是 static 的,否则 C# 编译器将为无构造函数的类提供一个公共的默认构造函数,以便该类可以实例化。
    构造函数必须是在类里的一级声明,并且命名为类名,
    形式为:修饰符 类名(参数类型1,参数名1,)一般函数的声明则不受这些约束
    只要定义在命名空间内,命名形式为:修饰符 返回值类型 函数名(参数类型1,参数名1,)
      

  2.   

    C#构造函数是在创建给定类型的对象时执行的类方法。构造函数具有与类相同的名称,它通常初始化新对象的数据成员。不带参数的构造函数称为“默认构造函数”。 无论何时,只要使用 new 运算符实例化对象,并且不为 new 提供任何参数,就会调用默认构造函数。
    静态构造函数可以给静态字段赋值,在程序中只会执行一次.而且是自动执行的
      

  3.   

    静态构造函数(只能被执行一次,系统自动调用)  1、静态构造函数既没有访问修饰符,也没有参数。因为是.NET调用的,所以像public和private等修饰符就没有意义了。
      
      2、是在创建第一个类实例或任何静态成员被引用时,.NET将自动调用静态构造函数来初始化类,也就是说我们无法直接调用静态构造函数,也就无法控制什么时候执行静态构造函数了。  3、一个类只能有一个静态构造函数。  4、无参数的构造函数可以与静态构造函数共存。尽管参数列表相同,但一个属于类,一个属于实例,所以不会冲突。  5、最多只运行一次。  6、静态构造函数不可以被继承。  7、如果没有写静态构造函数,而类中包含带有初始值设定的静态成员,那么编译器会自动生成默认的静态构造函数。
    参考
      

  4.   

     public class XX
        {
            static XX() //静态构造函数
            { 
            }
            public XX()//实例构造函数
            {        }
        }
      

  5.   

    构造函数前面加static实例构造函数这个说法第一次听到,不过我猜应该是普通的构造函数吧