VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > 编程开发 > Objective-C编程 >
  • C#2.0中泛型实现单例模式

#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();
    }
  }
}

相关教程