|
1
19
不应该使用静态类,而应该使用具有singleton模式的普通类(即,保留类的一个实例,可能由类本身的一个静态属性引用)。然后你可以有一个析构函数,或者更好,析构函数和 Dispose 例如,如果您现在有:
相反,你应该:
|
|
|
2
7
|
|
|
3
3
类型本身不能像您通常认为的实例上的构造函数那样具有构造函数。一般来说,它有时被称为“静态初始值设定项”方法,但Microsoft使用术语“类型构造函数”(它有特殊的限制)-您将代码放入其中以初始化类型/类-如果它是实例构造函数,则可能会重载。对“类型构造函数”的这种静态限制是因为.NET CLR负责在堆上加载类模板,并且在这种情况下不允许指定参数(因为您将如何传递参数)。因为从最严格的意义上讲,程序员不负责导致调用类型构造函数,所以当静态析构函数更多地位于CLR的域中时,允许程序员编写静态析构函数是没有多大意义的。CLR最终将从堆中删除类模板,但该类模板的生存期长于其实例,因此您无论如何都不希望在其中执行任何资源密集型操作(例如,保持打开db连接)。 2.什么独生子女 如果您遇到一种情况,您觉得需要在类模板上打开资源并在以后销毁它,您可能会考虑 Singleton software pattern System.IDiposable 除析构函数外,还有一个用于帮助清理的接口。(我看到有人已经在IDisposable代码示例中击败了我,所以我将在这里结束我的解决方案。) |
|
4
1
|