浣跨敤C# 2.0娉涘瀷瀹炵幇鍗曚緥妯″紡閲嶇敤
鍙戝竷: 2008-6-30 10:14 | 浣滆: admin | 鏌ョ湅: 16娆
銆銆浠嬬粛
銆銆寰堝鏈夌潃涓嶅悓寮鍙戣儗鏅緱浜洪兘浼氭瘮杈冪啛鎮夊崟渚嬫ā寮忋備粬浠細鍙戠幇姣忔浠栦滑瑕佸垱寤轰竴涓笉鍚岀殑鍗曚緥绫荤殑鏃跺欙紝閮戒笉寰椾笉鍐欏悓鏍峰緱浠g爜銆備娇鐢ㄦ柊鐨凜# 2.0鐨勬硾鍨嬶紝鍙互瀹炵幇鍙啓涓娆″悓鏍峰緱浠g爜銆
銆銆浣跨敤 C# 2.0 娉涘瀷鏉ュ畬鎴愬崟渚嬫ā寮忕殑閲嶇敤
銆銆浣跨敤 C# 2.0 鐨勬硾鍨嬶紝浣垮緱瀹炵幇鎴戞墍璇寸殑"鍗曚緥鎻愪緵鑰"鎴愪负鍙兘銆傝繖鏄竴涓彲鐢ㄦ潵鍒涘缓鍗曚緥绫诲疄渚嬬‘涓嶉渶瑕佷负姣忎釜鐗瑰畾鐨勭被閲嶅啓鍗曚緥妯″紡浠g爜鐨勫彲閲嶇敤鐨勭被銆傝繖鏍峰垎绂诲嚭鍗曚緥缁撴瀯鐨勪唬鐮侊紝灏嗘湁鍒╀簬淇濇寔鎸夊崟渚嬫ā寮忎娇鐢ㄧ被鎴栦笉鎸夊崟渚嬫ā寮忎娇鐢ㄧ被鐨勭伒娲绘с
public sealed class Singleton
{
銆Singleton()
銆{}
銆public static Singleton Instance
銆{
銆銆get
銆銆{
銆銆銆return SingletonCreator.instance;
銆銆}
銆}
銆class SingletonCreator
銆{
銆銆// Explicit static constructor to tell C# compiler
銆銆// not to mark type as beforefieldinit
銆銆static Nested()
銆銆{}
銆銆internal static readonly Singleton instance = new Singleton();
銆}
}
銆銆鍩轰簬瀵规硾鍨嬬殑浜嗚В锛屼綘鍙互鍙戠幇娌℃湁鐞嗙敱涓嶅湪杩欐浠g爜閲屾浛鎹㈢被鍨嬪弬鏁颁负娉涘瀷閲屽吀鍨嬬殑'T'銆傚鏋滆繖鏍峰仛锛岃繖娈典唬鐮佸氨鍙樻垚涓嬮潰杩欐牱銆
public class SingletonProvider
{
銆SingletonProvider() { }
銆public static T Instance
銆{
銆銆get { return SingletonCreator.instance; }
銆}
銆class SingletonCreator
銆{
銆銆static SingletonCreator() { }
銆銆internal static readonly T instance = new T();
銆}
}
銆銆娉ㄦ剰鍦ㄨ繖閲屼娇鐢ㄤ簡娉涘瀷鐨勭害鏉熴傝繖涓害鏉熷己鍒朵换浣曠被鍨'T'閮藉繀椤诲叿鏈夋棤鍙傛暟鐨勫叕鍏辨瀯閫犲嚱鏁般傝繖閲屽厑璁竤ingletonCreator绫绘潵瀹炰緥鍖栫被鍨'T'銆
銆銆閭d箞锛岃鎬庝箞鏍锋潵浣跨敤鍗曚緥鎻愪緵鑰呭憿锛熶负浜嗗紕娓呴櫎濡備綍浣跨敤瀹冿紝鎴戜滑闇瑕佸啓涓涓祴璇曠被銆傝繖涓祴璇曠被鏈変袱涓儴鍒嗐傜涓閮ㄥ垎鏄竴涓粯璁ょ殑鏋勯犲嚱鏁帮紝鐢ㄦ潵璁剧疆timestamp鍙橀噺鐨勫笺傜浜岄儴鍒嗘槸涓涓叕鍏卞嚱鏁帮紝鐢ㄦ潵瀹炵幇鐢"Debug.WriteLine"鏉ヨ緭鍑簍imestamp鐨勫笺傝繖涓祴璇曠被鐨勬剰鎬濆氨鏄笉璁洪偅涓嚎绋嬪湪浠讳綍鏃跺欙紝鍦ㄥ崟渚嬩笅璋冪敤杩欎釜绫诲叕鍏辨柟娉曪紝閮藉皢杩斿洖鐩稿悓鐨勫笺
public class TestClass
{
銆private string _createdTimestamp;
銆public TestClass ()
銆{
銆銆_createdTimestamp = DateTime.Now.ToString();
銆}
銆public void Write()
銆{
銆銆Debug.WriteLine(_createdTimestamp);
銆}
}
銆銆杩欎釜绫诲氨鍍忎笅闈㈣繖鏍蜂娇鐢ㄥ崟渚嬫彁渚涜咃細
SingletonProvider
銆銆鍏虫敞鐐
銆銆鎴戝凡缁忓湪涓涓秴绾跨▼鐨勫弻澶勭悊鍣ㄤ笂浣跨敤100涓嚎绋嬪湪鍗曟佹ā寮忎笅杩涜浜嗘祴璇曘傛墍鏈夌嚎绋嬮兘杩斿洖鐩稿悓鐨勫硷紝杩欒鏄庤繖鏄竴涓嚎绋嬪畨鍏ㄧ殑浣跨敤娉涘瀷鏉ュ疄鐜扮殑鍗曟佹ā寮忋 鎴戠浉淇¤繖宸茬粡鍏呭垎璇存槑浜嗘硾鍨嬫庝箞甯姪浣犵畝鍖栦唬鐮併




发表于 2009-1-5 19:48
| 











