ASP.NET Web应用程序是否只有一个Init
和一个Dispose
方法,或者我可以为每个类实现这些方法吗?
更具体地说,我有Customer
个组件和CustomerRecord
个类,并希望在这两个类中实现Init
和Dispose
方法。
这样做的正确方法是什么?
要求:
我想为每个上述类提供独立的Init
和Dispose
方法。
答案 0 :(得分:1)
对于应该是一次性的类,通过公开公共Dispose
方法,必须实现IDispsable
接口以使“可处置性”在显式用户处置范围之外有效。许多地方已经多次介绍过including here,例如:
public class Customer : IDisposable
{
public void Dispose()
{
Dispose(true);
GC.SupressFinalize(this);
}
protected virtual void Dispose(bool disposing)
{
if (disposing)
{
//dispose of managed resources
}
//dispose of unmanaged resources
}
~Customer()
{
Dispose(false);
}
}
请注意,析构函数(以代字号~
开头的方法)可能没有必要,但请阅读上面链接的答案中的详细信息,以清楚了解 what 和为什么 - 这只是直接回答你的问题。
对于Init
方法,您指的是constructor吗?
如果是这样,那么看看上面例子中的析构函数;构造函数(或初始化程序)可以用相同的方式定义减去代字号,通常加上显式访问修饰符(public
,private
等等,例如:
public class Customer
{
public Customer()
{
}
}
答案 1 :(得分:0)
您可以根据需要使用Init和Dispose方法创建基类,然后使其他类继承它。例如:
public class BaseClass
{
public void Init()
{
//Some code
}
public void Dispose()
{
//Some code
}
}
public class Customer : BaseClass
{
//Some code
}
这可能对你有帮助。