一.构造函数
1.实例化的时候执行;
2.构造函数的名称与类的名称完全相同,它没有任何返回类型;
3.可以分为无参构造(默认构造)和有参构造;
4.倘若在类的声明中没有显式的提供构造函数,这种情况编译器会提供一个隐士的默认构造函数:不带参数,方法体为空;
Program program = new Program(); Program program1 = new Program(10); Program program2 = new Program(20,"菲菲"); } string name; int age; public Program() { Console.WriteLine("这是默认构造函数"); } public Program(int age) { this.age = age; Console.WriteLine($"年龄:{age}"); } public Program(int age,string name) { this.age=age; this.name = name; Console.WriteLine($"年龄{age},姓名:{name}"); }
二.静态构造函数
1.静态构造函数用于初始化类中的静态数据 或 执行仅需一次的特定操作,静态构造函数将在创建第一个实例或引用类中的静态成员之前自动调用。
2.静态构造函数不使用访问权限修饰符修饰或不具有参数;
3..类或结构体中只能具有一个静态构造函数;
4.静态构造函数不能继承或重载;
5.静态构造函数不能直接调用,仅可以由公共语言运行时调用;
6.用户无法控制程序中静态构造函数的执行时间;
7.在创建第一个实例或引用任何静态成员之前,将自动调用静态构造函数以初始类化;
8..静态构造函数会在实例构造函数之前运行;
实例如下:
static Program() { Console.WriteLine("我是静态构造函数"); } //结果: 我是静态构造函数 这是默认构造函数 年龄:10 年龄20,姓名:菲菲
3. 私有构造函数
私有构造函数是一种特殊的实例构造函数,通常只包含静态成员的类中。如果类中只有一个或多个私有构造函数而没有公共构造函数的话,那么其他类无法创建该类的实例,下面通过一个实例来展示私有构造函数的使用:
注意:当一个类只有一个私有构造函数,或多个私有构造函数而没有公共构造函数的话,此时,需要用类本身来调用属性,方法;
代码如下:
class Student { public static int age; public static string name; private Student() { } public void Test() { Console.WriteLine($"姓名{name},年龄{age}"); } } public static void Main(string[] args) { //不能实例化 Student student = new Student(); Student.age = 10; Student.name = "阿婆"; }