首页 相关文章 C#下的单例实现

C#下的单例实现

  本文介绍了C#下关于单例的三种实现方法。

  最普通的一种:

以下是引用片段:
  using System;
  public class Singleton
  {
  private static Singleton instance;
  private Singleton() {}
  public static Singleton Instance
  {
  get
  {
  if (instance == null)
  instance = new Singleton();
  return instance;
  }
  }
  }

  这种方案在.Net下面是线程不安全的,每个线程进来会创建不同的类型实例。

  下面是一种在.Net公共语言运行环境下的线程安全单例实现模式:

[ 查看全文 ]

2016-02-19 标签:

C#下的单例实现的相关文章

  • #undef debug #define debugdisplay #undef debugdictionary using System; using System.Collections; namespace LZW {  public class cLZW  {   #region Constrcut   public cLZW()   {   }   #endregion      #region Coding   public string InCharStream   {    set { _InCharSt...[ 查看全文 ]
  • 小弟最近在编写一个O/RM组件(当然功能还是相当少的)。 大家都应该清楚把实体对象更新到数据库必须经过一系列的转换;特别是SQL语句的生成是比较费资源的,因为中间处里的东西实大是太多了。 在设计的过程中我就想如果一个对象插入数据库后把相应的Command保存在缓存中;下一次同一个类型的对象做这个操作时检测一下缓存如果有就直接拿来用这样效率应该会高些。 抱着这种想法就开始设计了(不过心里还是上...[ 查看全文 ]
  • 只要你的程序中Main入口是如下的,则你的程序在运行时,在一个时刻只能有一个程序实例,比如Winamp就是这种,当它在运行时,再又击这个程序,是不会再运行一个实例的. 代码很简单 [STAThread] static void Main(string[] args) { bool isExist; System.Threading.Mutex mutex=new System.Threading.Mutex(true,"myApp",out isExist); //这里的myApp是程序的标识,建议换成你的程序的物理路径,这样...[ 查看全文 ]
  • 之前发了一篇使用Window API来实现管道技术的文章,后来改用C#来实现相同的效果,发现C#本身方便的进程线程机制使工作变得简单至极,随手记录一下。 首先,我们可以通过设置Process类,获取输出接口,代码如下: Process proc = new Process(); proc .StartInfo.FileName = strScript; proc .StartInfo.WorkingDirectory = strDirectory; proc .StartInfo.CreateNoWindow = true; proc .StartInfo.UseShell...[ 查看全文 ]
  • 3.C#中预定义事件处理方式 学习事件,我觉得最不好理解的就是C#中预定义了事件,使我才开始学习事件时一头雾水。在查了些资料后,终于弄明白了一些,如下: EventArgs是包含事件数据的类的基类,用于传递事件的细节。 EventHandler是一个委托声明如下(其在.Net类库中如下声明的) public delegate void EventHandler( object sender , EventArgs e ) 所以,所有形如: void 函娄名(object 参数名,EventArgs 参...[ 查看全文 ]
  • 上一篇就结构的性能、局限性以及它和类的比较作了简单的描述,这篇我将接着介绍在使用结构时应该注意和把握的原则: 通过上篇的介绍,我们可以很自然的意识到结构在效率上的优越性(相对于类),这主要归因于它们在底层的值类型结构。 不过,它们的对于大容量数据和复杂度高的算法进行处理时所表现出来的局限性,使得它的适用范围大受限制。那我们在什么情 况下使用结构才能不受指责和嘲笑呢? 1、如果你...[ 查看全文 ]
  • 1.先通过程序生成报表样式的HTML页面,然后修改HTML页面的后缀名为DOC。 2.定制WORD文档的模板文件,在C#中操作WORD模板,生成新的WORD文档。 第一方案简单,只需要改动文件的扩展名就行了,但是也存在了一些问题,譬如生成的WORD文档样式的丢失。这样对于客户来说可能是一个无法通过的方案。第二方案比较复杂,需要调用OFFICE的WORD组件通过C#来操作WORD,进而生成WORD。此方法类似于我们在c#中的后台拼接...[ 查看全文 ]
  • 最近经朋友介绍开始玩 密传 网络游戏 升级升级,突然觉得太费键盘,于是自己用C#写了一个程序,想代替我的操作,自己去打怪物,自己升级 用这个东西升了好多级了,现在把源码贴出来,和大家共享,欢迎大家批评指正,感激不尽。 程序大概分成两个部分,一个部分是类库,一个是应用程序 大概的思路就是找到游戏进程的主窗口句柄,然后发送游戏按键消息(模拟按键)。 XDF.GamePlugInCommon 类库项目 //...[ 查看全文 ]
  • 橡皮区矩形 CRectTracker C# 实现 作者:fanjunxing 下载源代码 本文要求读者熟悉 C# 开发环境: Visual Studio .NET 2003 Windows 2000 测试环境:Windows 2000 更新记录:2004.4.7 第一次更新 使用许可:代码是否免费使用 功能介绍: 在MFC中CRec...[ 查看全文 ]
  • 摘要  想必大家对小榕时光等扫描器都非常熟悉了,有没有自己写一个的冲动。最近微软推实施了.NET战略方案,C#是主推语言,你们是否有兴趣用C#来实现对局域网IP地址的扫描,尝试一下自己写的快乐,那么请跟我来。  正文  1.先介绍一下使用的类:  DNS类:在.net中的System.net命名空间下,主要的功能是从 Internet 域名系统 (DNS) 检索关于特定主机的信息。 ...[ 查看全文 ]
  • 本文给出一个用 C# 编程实现 读写 Binary 的实例代码,对于初学者来说是个不可多得的参考性文章…… 以下是引用片段: //返回blob数据 public MemoryStream getBlob(string SQL) ...{ try ...{ Db_Conn(); cmd = new OleDbCommand(SQL, Conn); cmd.CommandType = CommandType.Text;//是sql OleDbDataRe...[ 查看全文 ]
  • SQLHelper.cs 代码如下: using System; using System.Collections.Generic; using System.Text; using System.Collections; using System.Data; using System.Data.SqlClient; using System.Configuration; namespace HelloWinForm.DBUtility { class SQLHelper { #region 通用方法 // 数据连接池 private SqlConnection con; /// summary /// 返回数据库连接字符串 /// /summary /// retu...[ 查看全文 ]
  • 实现步骤: 1.实现整个鼠标框选的几个事件(down、move、up),当鼠标点下记录鼠标框选的起点,鼠标抬起结束操作。 2.以鼠标框选过程中获取的鼠标坐标为基点计算框选的矩形的4点坐标,4点坐标以顺时针方向布点。 3.通过Shape.Path类实现在类上画出此矩形。 代码如下: 代码如下: namespace HostDemo {  public class HostCanvas : Canvas {   public HostCanvas() {    InitializeC...[ 查看全文 ]
  • using System; using System.IO; using System.Security.Cryptography; namespace Vavic { /// /// Security 的摘要说明。 /// public class Security { const string KEY_64 = "VavicApp"; const string IV_64 = "VavicApp"; //注意了,是8个字符,64位 public Security() { // // TODO: 在此处添加构造函数逻辑 // } public static string Encode(string data) { byte[] byKey = Syst...[ 查看全文 ]
  • 本文将给出通过 C# 编程来实现 忘记密码 功能的方法和代码,大家可以参照本文的思路自己写出这个功能代码…… 以下是引用片段: int result  = user.GetBackPassword(LoginName.Text.Trim(), Question.Text.Trim(),     Answer.Text.Trim(), Email.Text);    if (result == 1)    { &nbs...[ 查看全文 ]
  •   在开发数据库应用的过程难免会编写大量的SQL语句,其中大部份是查询语句;为不同情况编写查询语句是一件很烦琐的事件。用过hibernate或Nhibernate会了解到把SQL查询语句对象化后使用起非常方便和快捷;也大大减少在编写查询SQL语句所带来的错误等问题。        前段时间在编写一个数据处理类的时候同样遇到这个问题,经过一段时间思考和设计现实现了SQL查询语句对象化...[ 查看全文 ]
  • 1. 概述 有时候我们需要在web页面上显示一张图,比如说一张地图,而这张地图会比较大。这时候如果我们把一张大图分隔成一组小图,那么客户端的显示速度会明显地感觉块。希望阅读本文对你有所帮助。 2. 实现思路 .NET Framework GDI+ 为我们提供了一组丰富地类来编辑图形图像。有关.NET Framework GDI+的详细资料请查阅msdn相关文档。这里只简要叙述本程序要用的的几个...[ 查看全文 ]
  • 标签:Web开发
    解析得到的代码能通过XHTML 1.0 STRICT验证; 包含了标题,链接,字体,对齐,图片,引用,列表等方面的功能.  Ubb.ReadMe.htm UBB代码说明标题[h1]标题一[/h1] 标题一 [h2]标题二[/h2] 标题二 [h1]标题三[/h1] 标题三 [h4]标题四[/h4] 标题四 [h5]标题五[/h5] 标题五 [h6]标题六[/h6] 标题六 链接[url]www.unibetter.com[/url] unibetter.com [url]http://www.unibetter.com[/url] ...[ 查看全文 ]
  • 代码如下: using System; using System.Security.Cryptography; using System.Text; using System.IO; namespace Common ...{     /**//// summary     /// DESEncrypt加密解密算法。     /// /summary     public sealed class DESEncrypt     ...{         private DESEncrypt()  ...[ 查看全文 ]
  • /*  FTPFactory.cs  Better view with tab space=4  Written by Jaimon Mathew (jaimonmathew@rediffmail.com)  Rolander,Dan (Dan.Rolander@marriott.com) has modified the  download  method to cope with file name with path information. He also...[ 查看全文 ]
手机页面 收藏网站 回到头部