一个 ASP.NET Web 应用程序是否可以只有一个Init
和一个Dispose
方法,或者我可以为每个类实现这些我想要关联这些方法的那些方法?
更具体地说,我有Customer
组件和CustomerRecord
类,并希望在它们中实现Init
和Dispose
方法。
这样做的正确方法是什么?
要求:
我想为每个上述类都有独立的Init
和Dispose
方法。
一个 ASP.NET Web 应用程序是否可以只有一个Init
和一个Dispose
方法,或者我可以为每个类实现这些我想要关联这些方法的那些方法?
更具体地说,我有Customer
组件和CustomerRecord
类,并希望在它们中实现Init
和Dispose
方法。
这样做的正确方法是什么?
要求:
我想为每个上述类都有独立的Init
和Dispose
方法。
对于应该是一次性的类,通过公开一个公共Dispose
方法,IDispsable
必须实现接口以使“可处置性”在显式用户处置范围之外有效。这已在许多地方多次介绍过,包括这里,例如:
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);
}
}
请注意,析构函数(以波浪号开头的方法~
)可能不是必需的,但请阅读我上面链接的答案中的详细信息,以便清楚了解情况和原因-这只是直接回答您的问题。
至于Init
方法,您指的是构造函数吗?
如果是,那么看看上面例子中的析构函数;可以以相同的方式定义构造函数(或初始化程序),减去波浪号,通常加上显式访问修饰符(public
,private
等),例如:
public class Customer
{
public Customer()
{
}
}
您可以根据需要使用 Init 和 Dispose 方法创建一个基类,然后让其他类继承它。例如:
public class BaseClass
{
public void Init()
{
//Some code
}
public void Dispose()
{
//Some code
}
}
public class Customer : BaseClass
{
//Some code
}
那可能对你有帮助。