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

c# – 我可以重置静态共享类吗?,第1张

概述我有一个共享类(C#中的静态),它主要带有一些设置数据,应用程序中的任何类都可以读取并有时写入.还有一些静态属性,它们包含一些内部状态. 现在我想将这个类恢复到它的初始阶段.使用所有默认变量等.假设用户想要重置当前状态并重新开始而不重新启动应用程序. 在单例模型中,我只需使用以下内容进行更新: Public Sub Reset() _Instance = New MyClass()En 我有一个共享类(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 StringEnd 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 StringEnd Class
总结

以上是内存溢出为你收集整理的c# – 我可以重置静态/共享类吗?全部内容,希望文章能够帮你解决c# – 我可以重置静态/共享类吗?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1263236.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-08
下一篇 2022-06-08

发表评论

登录后才能评论

评论列表(0条)

保存