c# – 我可以重置静态/共享类吗?

前端之家收集整理的这篇文章主要介绍了c# – 我可以重置静态/共享类吗?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个共享类(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

猜你在找的C#相关文章