C#中的构造函数

类的构造函数是一个特殊的函数。使用 new 运算符创建类的实例时将自动调用该函数。构造函数的名称与包含它的类的名称相同 。

例1:

class A
{
    
//不带参数的构造函数
    public A()
    {
        
//实现
    }
    
//带参数的构造函数
    public A(string s)
    {
        
//实现
    }
}
  •  不带参数的构造函数称为“默认构造函数”。无论何时,只要使用 new 运算符实例化对象,并且不为 new 提供任何参数,就会调用默认构造函数。
  • 除非类是 static 的,否则 C# 编译器将为无构造函数的类提供一个公共的默认构造函数,以便该类可以实例化。构造函数可以使用 base 关键字来调用基类的构造函数。
  • 在派生类中,如果不使用 base 关键字来显式调用基类构造函数,则将隐式调用默认构造函数(如果有的话)。

从以上我们可以得出:

class A
{
}

class A
{
 public A()
 {
 }
}
是一模一样的

但是如果还有一个类

则等同于

class B:A
{
 public B():base()
 {
 }
}

 

构造函数是一种特殊的成员函数,主要用于为对象分配存储空间,对数据成员进行初始化,也就是为对象成员变量赋初始值,总与`new`运算符一起使用在创建对象的语句中。可以有多个构造函数,实现重载,其实质是一种特殊的方法[^1]。 以下是C#构造函数的声明方式示例: ```csharp class Chinar { private int a = 1; private int b = 1; private string c = "Chinar"; private object d = 666; // 构造函数用来完成 —— 初始化工作 public Chinar() // 声明一个名称与名一样的函数,就是构造函数(可以传所需的参数,写所需的方法) { // 每个,本身默认有一个。如果不写明这个 public Chinar() 函数,系统仅调用系统默认的。 // 自定义构造 public Chinar() 函数后,系统只会调用自定义的 Chinar() } // 这是一个多参数的构造函数 public Chinar(int a, int b, string c, object d) { } } ``` 构造函数还可以使用`this`关键字调用同一个中的其他构造函数,以实现代码复用。例如: ```csharp public class Person { public string Name { get; set; } public int Age { get; set; } // 默认构造函数使用 this 调用带两个参数的构造函数 public Person() : this("Unknown", 0) { } // 带一个参数的构造函数使用 this 调用带两个参数的构造函数 public Person(string name) : this(name, 0) { } // 带两个参数的构造函数 public Person(string name, int age) { Name = name; Age = age; } } public class Program { public static void Main(string[] args) { // 使用无参数的构造函数 Person person1 = new Person(); Console.WriteLine($"Person 1: {person1.Name}, {person1.Age} years old."); // 使用带一个参数的构造函数 Person person2 = new Person("Alice"); Console.WriteLine($"Person 2: {person2.Name}, {person2.Age} years old."); // 使用带两个参数的构造函数 Person person3 = new Person("Bob", 30); Console.WriteLine($"Person 3: {person3.Name}, {person3.Age} years old."); } } ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值