C# 单例模式扩展

本文介绍了一种C#实现单例模式的方法,适用于Winform小程序的多个页面,通过创建一个通用的单例类,简化了代码编写。这个类可以作为其他类的基类,实现窗体的单例控制。作者分享了这一实践,欢迎读者交流讨论。
摘要由CSDN通过智能技术生成

    由于开发一个小Winform小程序,很多页面必须使用单例模式(Singleton Pattern)但由懒的写那么多,所以创建这么一个单例类,诊断窗体进行处理,

   此类可以进行作为其他的单例进行使用,只要存在一个父类,那么就可以进行使用。

   个人感觉此类书写还比较不错,所以记录以供大家指正、学习。

    //单例模式代码
    public static class SingletonForm
    {
        private static Dictionary<string, Form> _singletonDictionary;


        public static T GetTInstance<T>(Type claseType) where T :Form, new()
        {
            if (_singletonDictionary == null)
            {
                _singletonDictionary = new Dictionary<string, Form>();
            }
            //判断是否已经存在指定的窗体
            if (_singletonDictionary.ContainsKey(claseType.FullName))
            {
                Form parentForm = _singletonDictionary[claseType.FullName];
                //判断是否进行了关闭,因为关闭后会调用Dispose(),导致再次调用的时候会提示无法访问已经释放的资源
                if (parentForm.IsDisposed)
                {
     
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值