C#2.0中用范型实现单例模式

#region Using directives

using System;
using System.Collections.Generic;
using System.Text;
using System.Reflection;

#endregion

namespace GenericsSingleton
{
///

1<summary>   
2/// 单例范型   
3/// </summary>

///

1<typeparam name="T"></typeparam>

public class Singleton

 1<t>   
 2{   
 3private static T _instance; 
 4
 5public Singleton()   
 6{   
 7} 
 8
 9public static T Instance   
10{   
11get   
12{   
13if (_instance == null)   
14{ 
15
16//获得实例,使用这个方法的前提是T要有公有的、无参数的构造函数 
17
18_instance = (T)System.Activator.CreateInstance(typeof(T));   
19}   
20return _instance;   
21}   
22}   
23} 
24
25/// <summary>   
26/// 要实现单例的类   
27/// </summary>   
28public class Foo   
29{   
30private int count = 0; 
31
32public int Count   
33{   
34get   
35{   
36count++;   
37return count;   
38}   
39}   
40} 
41
42/// <summary>   
43/// 主函数   
44/// </summary>   
45class Program   
46{   
47static void Main(string[] args)   
48{   
49//连续调用三次如果值是递增的话说明三次调用都是同一个实例   
50Console.WriteLine(Singleton<foo>.Instance.Count);   
51Console.WriteLine(Singleton<foo>.Instance.Count);   
52Console.WriteLine(Singleton<foo>.Instance.Count); 
53
54Console.ReadLine();   
55}   
56}   
57}</foo></foo></foo></t>
Published At
Categories with Web编程
Tagged with
comments powered by Disqus