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开始执行析构函数