我有一个共享类(C#中的静态),它主要带有一些设置数据,应用程序中的任何类都可以读取并有时写入.还有一些静态属性,它们包含一些内部状态.
现在我想将这个类恢复到它的初始阶段.使用所有默认变量等.假设用户想要重置当前状态并重新开始而不重新启动应用程序.
在单例模型中,我只需使用以下内容进行更新:
Public Sub Reset() _Instance = New MyClass() End Sub
但是,在Shared类中这是不可能的.有什么想法我怎么能做到这一点?或者我应该切换回Singleton?
解决方法
没有办法像你刚才指出的单身模型那样做.原因是没有后备数据存储来“重置”.你可以做的是通过使用显式方法来初始化我们的所有数据来模拟这个.
Public Module MyClass Public Sub Reset() Field1 = 42 Field2 = "foo" End Sub Public Shared Field1 As Integer Public Shared Field2 As String End Module
包含类与模块的版本
Public Class MyClass Shared Sub New() Reset End Sub Private Sub New() ' Prevent instantiation of the class End Sub Public Sub Reset() Field1 = 42 Field2 = "foo" End Sub Public Shared Field1 As Integer Public Shared Field2 As String End Class