如何确保静态变量在整个应用中始终只有一个副本?
时间: 2024-09-20 08:08:33 浏览: 40
在 C# 中,静态变量(static variables)默认就是单例模式的实现方式,因为它们被所有实例共享,每个类只有一份副本。当你声明一个静态变量时,它的生命周期与整个应用程序相同,从加载到卸载。
要确保这一点,你可以这样做:
```csharp
public class SingletonClass
{
// 静态变量,初始化为 null,表示还没有创建实例
private static SingletonClass _instance;
// 私有的构造函数,防止直接实例化
private SingletonClass()
{
}
// 获取唯一实例的方法
public static SingletonClass Instance
{
get
{
if (_instance == null)
{
_instance = new SingletonClass();
}
return _instance;
}
}
// 其他公共方法和属性...
}
```
在这个例子中,`SingletonClass.Instance` 是获取单例的入口点。如果 `_instance` 还没有被初始化,那么就会创建一个新的 `SingletonClass` 实例;否则,返回已存在的实例。这种方式确保了在整个应用程序中只有一个 `SingletonClass` 的实例。
阅读全文