gpt4 book ai didi

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

转载 作者:太空狗 更新时间:2023-10-29 21:03:41 25 4
gpt4 key购买 nike

我有一个 shared 类(C# 中的 static),它主要携带一些设置数据,应用程序中的任何类都可以读取,有时也可以写入。还有一些静态属性保存一些内部状态。

现在我想把这个类恢复到它的初始阶段。使用所有默认变量等。假设用户想要重置当前状态并重新开始而不重新启动应用程序。

在单例模型中,我会简单地用这样的东西更新它:

Public Sub Reset() 
_Instance = New MyClass()
End Sub

但是这在 Shared 类中是不可能的。有什么想法可以实现吗?或者我应该回到到单例模式?

最佳答案

无法按照您刚才指出的单例模型的方式进行操作。原因是没有要“重置”的后备数据存储。不过,您可以做的是通过使用显式方法来初始化我们所有的数据来模拟这一点。

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# - 我可以重置静态/共享类吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/821151/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com