程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> 關於C# >> C# 2.0中用范型實現單例模式

C# 2.0中用范型實現單例模式

編輯:關於C#

#region Using directives
  
using System;
using System.Collections.Generic;
using System.Text;
using System.Reflection;
  
#endregion
  
namespace GenericsSingleton
{
   /// <summary>
   /// 單例范型
   /// </summary>
   /// <typeparam name="T"></typeparam>
   public class Singleton<T>
   {
     private static T _instance;
  
     public Singleton()
     {
     }
  
     public static T Instance
     {
       get
       {
         if (_instance == null)
         { 
  
          //獲得實例,使用這個方法的前提是T要有公有的、無參數的構造函數        
  
           _instance = (T)System.Activator.CreateInstance(typeof(T));
         }
         return _instance;
       }
     }
   }
  
   /// <summary>
   /// 要實現單例的類
   /// </summary>
   public class Foo
   {
     private int count = 0;
  
     public int Count
     {
       get
       {
         count++;
         return count;
       }
     }
   }
  
   /// <summary>
   /// 主函數
   /// </summary>
   class Program
   {
     static void Main(string[] args)
     {
       //連續調用三次如果值是遞增的話說明三次調用都是同一個實例
       Console.WriteLine(Singleton<Foo>.Instance.Count);
       Console.WriteLine(Singleton<Foo>.Instance.Count);
       Console.WriteLine(Singleton<Foo>.Instance.Count);
  
       Console.ReadLine();
     }
   }
}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved