C# 何时使用单例类而不是静态类

C# 何时使用单例类而不是静态类,c#,static,singleton,C#,Static,Singleton,我已经研究了单例类和静态类之间的很多差异,我唯一能说服自己的是语法上的差异,对此我不感兴趣 有人能告诉我静态和单态的真正区别吗? 当我应该只使用singleton not static或任何其他实例时?简而言之,singleton有一个(单个)实例,而static类没有实例。因此,当您想要传递实例时,请选择Singleton,例如: // EventArgs.Empty is a Singleton DoOnChange(myObject, EventArgs.Empty); 在任何情

我已经研究了单例类和静态类之间的很多差异,我唯一能说服自己的是语法上的差异,对此我不感兴趣

有人能告诉我静态和单态的真正区别吗? 当我应该只使用singleton not static或任何其他实例时?

简而言之,singleton有一个(单个)实例,而static类没有实例。因此,当您想要传递实例时,请选择Singleton,例如:

  // EventArgs.Empty is a Singleton
  DoOnChange(myObject, EventArgs.Empty);
在任何情况下都不需要使用静态类:

简而言之,Singleton有一个(单个)实例,而静态类没有。因此,当您想要传递实例时,请选择Singleton,例如:

  // EventArgs.Empty is a Singleton
  DoOnChange(myObject, EventArgs.Empty);
在任何情况下都不需要使用静态类:


你可以看到,你可以看到,但我可以在静态类中有一个函数,用于传递对象。i、 e如果任何外部类更改函数内的值,则将在@Dmitry的任何地方受到影响Bychenko@keerti_h:这就是所谓的副作用,我们通常应该避免这种副作用,因为您提到的原因是:“将在任何地方受到影响”(或至少是“其他地方”)但是我可以在静态类中有一个函数,用于传递对象。i、 e如果任何外部类更改函数内的值,则将在@Dmitry的任何地方受到影响Bychenko@keerti_h:这就是所谓的副作用,我们通常应该避免这种副作用,因为您提到的原因是:“将在任何地方受到影响”(或至少是“其他地方”)