C# 一次一个类的实例

C# 一次一个类的实例,c#,C#,假设我有一个叫做TestClass的类。我希望应用程序一次只包含此类的一个实例 我有一个可继承的类名Singleton,我这样使用它: public class TestClass : Singleton<TestClass> { } 问题是,我需要不时地用新参数等重新实例化TestClass 我应该创建一个静态实例并在需要时重新实例化,还是有更好的方法 感谢和抱歉。Singleton应该一直存在,直到应用程序终止,并且不应该重新实例化。如果要更改此类的任何成员,请创建sette

假设我有一个叫做TestClass的类。我希望应用程序一次只包含此类的一个实例

我有一个可继承的类名Singleton,我这样使用它:

public class TestClass : Singleton<TestClass>
{

}
问题是,我需要不时地用新参数等重新实例化TestClass

我应该创建一个静态实例并在需要时重新实例化,还是有更好的方法


感谢和抱歉。

Singleton应该一直存在,直到应用程序终止,并且不应该重新实例化。如果要更改此类的任何成员,请创建setter方法

例如,如果您有一个singleton类和其中的两个成员:

public int Integer1 { get; private set;}
public string String1 { get; private set;}
您可以创建两个setter,或者,如果这两个属性应该一起更改,则可以创建一个将它们设置为给定值的方法:

public void SetIntAndString(int int1, string str1)
{
    Integer1 = int1;
    String1 = str1;
}

永远不应该存在任何删除或修改类实例对象本身的方法。

值、用户输入、应用程序是否重新加载静态数据或…?从单例继承有何帮助?Instance属性是静态的,无法继承。从Singleton继承使类一次只有一个实例,这就是我需要的。除了每次使用我都需要重新恢复@Brian Mains更改值的是我GoF天的单例已经被依赖注入容器所取代,在容器配置中只声明一个实例。看到这个进行平衡的讨论。这似乎是个好主意,我想我会用新的值从该类重新启动操作,这似乎是个好主意?是的,这比重新启动singleton要好得多
public void SetIntAndString(int int1, string str1)
{
    Integer1 = int1;
    String1 = str1;
}