using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ClassInit
{
    internal class Program
    {
        static void Main(string[] args)
        {
            int fff = 123;
            string eee = "aaa";
            InitFunction inf = new InitFunction(fff, eee);
            inf.UserFunction();
            inf.aa = 456;
            inf.bb = "zzz";
            inf.UserFunction();
            Console.ReadKey();
        }
    }
    public class InitFunction
    {
        // 定义的全局变量,供在类方法中传值
        public int aa;
        public string bb;
        // 构造函数和类同名,构造函数的参数即为类初始化时需要的参数,构造函数在类初始化时自动执行
        public InitFunction(int aaa, string bbb)
        {
            Console.WriteLine("现在开始执行构造函数");
            aa = aaa;
            bb = bbb;

        }
        // 类方法,需要实例化后才能调用
        public void UserFunction()
        {
            Console.WriteLine($"aa={aa}; bb={bb}");
        }

        // ~开头的函数称为析构函数,析构函数在类在内存中被销毁时自动执行,类似python的__del__方法
        ~InitFunction()
        {
            Console.WriteLine("开始执行析构函数");
        }
    }

}

执行结果

E:\game_learn\ClassInit\bin\Debug>ClassInit.exe
现在开始执行构造函数
aa=123; bb=aaa
aa=456; bb=zzz
// 输入1后,程序就结束了,这时候执行类的析构函数
1开始执行析构函数
posted on 2023-01-19 23:48  盈盈的月儿  阅读(7)  评论(0编辑  收藏  举报