说白了结构函数就是用来初始化类的数据成员{因为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);
}