首页 > 代码库 > 【学习笔记】C# 构造和析构

【学习笔记】C# 构造和析构

  • 构造方法
    • 构造方法是一个特殊的方法,负责初始化对象
    • 构造方法名必须和类名一致
    • 构造方法没有返回值,但可以有参数,能够重载
    • 构造方法可以不写,系统会自动为类添加一个无参的默认构造
    • 如果将构造方法设置为Private,就不能再使用此构造创建实例
  • 析构
    • 析构方法在对象销毁时调用,用于释放内存
    • 一个类只能有一个析构方法
    • 析构方法没有返回值和参数,不能进行重载
    • 析构方法由系统自动调用,不能手动调用
    • 析构方法没有修饰符
  •   
     1 using System;
     2 
     3 namespace FunctionDemo2
     4 {
     5     public class Person
     6     {
     7         public string name;
     8         public int age;
     9         //构造方法-负责初始化对象
    10         //1.构造方法的方法名必须和类名一致
    11         //2.构造方法没有返回值,不需要写void
    12 
    13         //3.构造方法能够添加参数
    14         public Person(string name, int age)
    15         {
    16             //初始化成员变量
    17             this.name = name;
    18             this.age = age;
    19             Console.WriteLine("构造");
    20         }
    21 
    22         //4.构造方法允许重载
    23         public Person()
    24         {
    25             name = "Li";
    26             age = 14;
    27 
    28         }
    29         //5.如果没有给类添加构造方法,系统会提供一个默认构造
    30         //6.如果我们将某个构造方法设为私有类,就不允许再通过这个构造创建对象
    31         //private Person()
    32         //{
    33 
    34         //}
    35         //析构方法 - 在对象销毁时调用,用于释放内存
    36         //1. 每个类只能有一个析构方法
    37         //2. 析构方法不能有返回值
    38         //3. 析构方法不能有访问权限修饰符
    39         //4. 析构函数不能带有参数,更不能重载
    40         //5. 析构函数由系统自动调用,不能手动调用
    41         ~Person()
    42         {
    43             Console.WriteLine("析构");
    44         }
    45     }
    46     class Program
    47     {
    48         static void Main(string[] args)
    49         {
    50             //使用new关键字创建对象的时候,就已经调用了构造方法
    51             Person p = new Person("Li", 29);
    52             Console.WriteLine(p.name);
    53             Console.WriteLine(p.age);
    54 
    55             Console.WriteLine("主函数结束,程序准备退出!");
    56 
    57             //Person p2 = new Person();
    58             //Console.WriteLine(p2.name);
    59             //Console.WriteLine(p2.age);
    60 
    61         }
    62     }
    63 }

     

【学习笔记】C# 构造和析构