在很多时候,我们需要限制C#类只能实例化一次,比如某些窗口;否则的话每点击一次就会出现一个窗口实例;
方法一:修改要实例化的类;通过静态成员 _instance 和静态函数CreateInstance 来循环判断是否已经实例化;
- public class Singleton
- {
- private static Singleton _instance = null;
-
- private Singleton()
- {
- }
- public static Singleton CreateInstance()
- {
-
-
- if(_instance == null || _instance.IsDisposed == true)
- _instance = new Singleton();
- return _instance;
- }
- }
方法二:在函数体外声明该类型的变量;
Singleton sing;
if(sing!=null || sing.IsDisposed)
{
sing= new Singleton();
sing.Show();
} //如没有则实例化;
else
{
sing.Activate()
} //已实例化则激活对象;