如果我有课,
class order()
{
int orderId {get;set;}
double total {get;set;}
public order(){}
...
}
是否有一些我可以重载的东西,以便 c# 每次要卸载时都会执行某些操作,而不是告诉它我希望它完成?
static void Main(string[] args)
{
Order activeOrder = new Order();
// do stuff to the order
activeOrder = new Order(); <---- Automatically commit any changes to the order, since I am starting a new one.
}
最佳答案
你问的根本没有意义。当您将新的 Order
实例分配给 activeOrder
变量时,第一个 Order
实例不会“卸载”。它只是有资格进行垃圾收集(除非它也在其他地方被引用)。这意味着下次 GC 运行时,实例将被收集,并且终结器将运行(如果已定义)。问题是它完全是不确定的:你不知道 GC 何时运行。
Order
类无法检测到该变量被分配了一个新实例。您所能做的就是编写一个终结器,但由于您不知道它何时运行,因此这可能不是一个好主意。处理完当前订单
后,您应该显式提交更改。
关于c# - 我可以设置一些东西来让一个类在卸载时做一些事情吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28132402/