惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Martin Fowler
Martin Fowler
有赞技术团队
有赞技术团队
博客园_首页
H
Help Net Security
GbyAI
GbyAI
aimingoo的专栏
aimingoo的专栏
V
Visual Studio Blog
The Cloudflare Blog
腾讯CDC
Jina AI
Jina AI
Last Week in AI
Last Week in AI
月光博客
月光博客
博客园 - 叶小钗
Google DeepMind News
Google DeepMind News
B
Blog RSS Feed
Blog — PlanetScale
Blog — PlanetScale
人人都是产品经理
人人都是产品经理
Engineering at Meta
Engineering at Meta
Y
Y Combinator Blog
Hugging Face - Blog
Hugging Face - Blog
博客园 - 聂微东
爱范儿
爱范儿
N
Netflix TechBlog - Medium
F
Fortinet All Blogs

博客园 - 老杨的地盘

数据库设计规范化(转) 一个双色球程序 .Net Framework 基础 抽象类与接口建议 NHibernate一个组件NHibernateIT Bind和Eval的区别详解(转) 胜任素质--哈佛大学教授麦克里兰 (McClelland)有效地预测外交官实际工作业绩的人员选拔方法 人生必看的27个小故事 打工者的三个忠告 成功路上的四盏灯 button按钮失灵的问题 30岁以前不必在乎的29件事情 js里取得输入框数字的函数 语录 札记:"没有可用的错误信息: DB_SEC_E_AUTH_FAILED(0x80040E4D)。 " 札记: Win2003 重装与IIS6.0 “HTTP 错误 404 - 文件或目录未找到” C#正则表达式快速入门 也谈"未将对象引用设置到对象的实例" 2005图书排行榜
C#中的一种Singleton的实现(转)
老杨的地盘 · 2007-10-03 · via 博客园 - 老杨的地盘

在CSDN上看到了C#中的Singleton的实现,实用性并不是太大,不过里边结合了泛型和多线程同步技术,觉得不错,记一下
//C#代码
//singleton.cs
using System;
using System.Collections.Generic;
using System.Text;
namespace Singleton
{
public class SingleTon<T>
{
private static Object objLock = new Object();
protected SingleTon() {}
protected static T _instance;
public static T Instance()
 {
  if(null == _instance)
   {
     lock(objLock)
     {
       if(null == _instance)  //must do this
         _instance = (T)Activator.CreateInstance<T>();
     }
    }
   return _instance;
 }
 public static void Destroy()
  {
    _instance = default(T);
  }
}
 
 public class Person
 {
   String m_strName;
   int    m_nAge;
   public void Eat()
   {
     Console.WriteLine("Eating.. Name: {0}, Age{1}",m_strName,m_nAge);
   }
 }
}
 
//Main.cs
namespace Singleton
{
 class program
{
 static void Main(string[] args)
 {
   SingleTon<Person>.Instance().Eat();
   SingleTon<Person>.Destroy();
 }
}
}
转自:http://12115294.qzone.qq.com/blog/27

posted on 2007-10-03 17:48  老杨的地盘  阅读(438)  评论()    收藏  举报