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

王朝c#·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

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

}

}

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有  導航