我觉得说得挺通俗易懂的 public class ConstructorProgram { private string

时间:2022-06-27 08:02:09

说白了结构函数就是用来初始化类的数据成员{因为C#语言具有类型安适的特质-->不能使用没有初始化的变量)}

在这里引用一下别人的总结,我感受挺好的:

    结构函数是一种特殊的成员函数,它主要用于为东西分配存储空间,对数据成员进行初始化.

    结构函数具有一些特质:

(1).结构函数必需与类同名;

(2).结构函数没有返回类型,它可以带参数,也可以不带参数;

(3).一个类中可以有一个或多个结构函数,也就是说结构函数可以重载,从而供给初始化类东西的差别要领;

(4).声明类东西时,系统自动挪用结构函数,结构函数不能被显式挪用;

    (5).若在声明时不决义结构函数,系统会自动生成默认的结构函数,此时结构函数的函数体为空.

(6).静态结构函数,用static修饰,用于初始化静态变量,一个类只允许有一个静态结构函数,在类实例化时加载,这时修饰符public、private掉去感化.

      {

静态结构函数既没有访谒修饰符,,也没有参数。

      在创建第一个实例或引用任何静态成员之前,将自动挪用静态结构函数来初始化类。

      无法直接挪用静态结构函数。在措施中,用户无法控制何时执行静态结构函数。

        静态结构函数的范例用途是:当类使用日志文件时,将使用这种结构函数向日志文件中写入项。

      静态结构函数在为非托管代码创建包装类时也很有用,此时该结构函数可以挪用 LoadLibrary 要领。

      如果静态结构函数引发异常,运行时将不会再次挪用该结构函数,并且在措施运行地址的应用措施域的保留期内,类型将连结未初始化}

(7)可以使用public、protected、private修饰符;

(8)引用父类结构时用():base()要领,引用自身重载的结构使用():this(int para);

这里代码举例就只列举  base和this的用法,也是别人的列子,拿来用的,我感受说得挺通俗易懂的

public class ConstructorProgram
    {
       private string name;
       private int age;
  
       public ConstructorProgram():this("bell")
       {
           //Console.WriteLine("No Info Left.");
       }
       public ConstructorProgram(string name)
           :this("Simple Programmer",20)
        {
            this.name = name;
            Console.WriteLine("name=" + this.name);
        }
        public ConstructorProgram(string name, int age)
        {
            this.name = name;
            this.age = age;
            Console.WriteLine("name=" + this.name);
            Console.WriteLine("age=" + this.age);
        }