實例講解C#中的職責鏈模式_C#教程

來源:腳本之家  責任編輯:小易  

初中數學教學設計的常用模式有:一、“引導—發現”模式這種模式是數學新課程教學中應用較為廣泛的一種教學模式,在教學活動中,教師不是將現成的知識灌輸給學生,而是通過精心設置的一個個問題鏈,激發學生的求知欲,使學生在老師的引導與合作下,通過自主探索、合作交流、發現問題、解決問題。這種模式的教學目標是:學習發現問題的方法,培養、提高創造性思維能力!耙龑Аl現”模式的教學結構是:創設情境—提出問題—探究猜測—推理驗證—得到結論。(例:探索三角形全等的條件)二、“活動—參與”模式這種模式通過教師的引導,學生自主參與數學實踐活動,在活動中通過動手探索,參與實踐,密切數學與生活實際的聯系,掌握數學知識的發生、形成過程和數學建模方法,形成用數學的意識。在數學教學中,數學活動內容是豐富多彩的,部分數學活動既可在課內進行又可以在課外進行,像問題解決、數學游戲、數學實驗。一般來說,課外活動更重視培養興趣、提高自學能力和實際操作能力,學習內容受課本的約束也很少!盎顒印獏⑴c”模式主要有以下幾種形式:①數學調查;②數學實驗;③測量活動;④模型制作;⑤數學游戲;⑥問題解決。這種模式的教學目標是:積極培養學生的主動參與意識,增進師生、同伴之間的情感交流,提高實際操作能力,形成用數學的意識。該模式一般的教學結構是:創設問題情境—實踐活動—合作交流—總結。(例:用正多邊形拼地板)三、“討論—交流”模式這種模式有利于學生積極思維,有助于學生合作學習,因此也是數學新課程教學中常用的一種模式。這一模式的教學目標是:養成積極思維的習慣,培養批判性思維的能力,培養數學交流的能力和協作能力。它的特點是,對學習內容通過問題串形式開展討論,學生積極思考,充分發表自己的意見和看法。通過討論,交流思想,探究結論,掌握知識和技能!坝懻摗涣鳌蹦J揭话愕慕虒W結構是:提出問題—課堂討論—交流反饋—小結。(例:完全平方公式)四、“自學—輔導”模式“自學—輔導”模式是學生在教師的指導和輔導下進行自學、自練和自改作業,從而獲得知識,發展能力的一種模式。在這一模式中,學生通過自學,進行探索、研究,老師則通過給出自學提綱,提供一定的閱讀材料和思考問題的線索,啟發學生進行獨立思考。它的特點是學生的自主性、獨立性較強,有利于學生在自學中學會學習,掌握學習方法!白詫W—輔導”模式一般的教學結構是:提出要求—自學—提問—討論交流—講解—練習。以上四個教學模式是數學新課程所提倡的主要教學模式。同時,我們認為傳統的“講解—傳授”模式在數學新課程教學中也并未被拋棄,只不過是用新的教育理念來指導改革其中的一些陳舊的作法而不是對其全盤否定。五、“講解—傳授”模式這種教學模式以教師的系統講解為主脈,教師進行適當的啟發引導,促使學生進行積極思考。這種教學模式主要用于陳述性知識和程序性知識的傳授和學習。它有助于學生在短時間內掌握大量知識和形成熟練技能!爸v解—傳授”模式的主要理論依據是凱洛夫教學思想和奧蘇貝爾的“有意義的學習”的理論。這種教學模式能使學生在單位時間內迅速系統地掌握較多的數學基本知識和技能,但在數學教學中,教師采用這種模式最需要關注的是:學生必須有進行對學習材料有意義學習的心向,學生的認知結構中必須有適當的知識與新知識產生聯系。以上幾種常見的初中數學教學模式。在選擇教學模式時,要明確三點:1.最有效的學習應是讓學生在體驗和創造的過程中進行有意義的學習;2.數學課堂教學的關鍵是學生接受式學習與發展式學習互相補充、合理結合;3.數學教學模式不能機械的截然劃分,在數學新課程教學中,幾種模式可以進行相互滲透與綜合。每一位教師都應認識到,沒有可適用于各種情況的教學模式,也沒有所謂最好的教學模式。對某一種教學目標、某一類數學教學內容、某一個班學生不一定只有一種教學模式,有多種模式可以選用。我們必須從教學目標、教學內容、學生的實際情況、教師的特點等諸多方面來考慮,靈活地進行選擇與組合,這樣才能實現最佳的教學過程www.anxorj.tw防采集請勿采集本網。

大家好,歡迎來到老胡的博客,今天我們繼續了解設計模式中的職責鏈模式,這是一個比較簡單的模式。跟往常一樣,我們還是從一個真實世界的例子入手,這樣大家也對這個模式的應用場景有更深刻的理解。

1、首先,要拿到各分店的貨物銷售情況,本次經驗主要以2種物品分別在兩個分店的銷售情況做實例來講解。2、最終要把這些二維表格進行匯總,變成容易編輯和統計展示的一維表格,接下來,就正式開始嘍!3、用

一個真實的栗子

1、首先,要拿到各分店的貨物銷售情況,本次經驗主要以2種物品分別在兩個分店的銷售情況做實例來講解。2、最終要把這些二維表格進行匯總,變成容易編輯和統計展示的一維表格,接下來,就正式開始嘍!3、用

作為上班族,相信大家對請假都不陌生,每個公司都有自己請假的流程,稍微講究點的公司還會有細致的規定,比如,3天以內的假期,小組長有權力批準,3天以上的假期就要找更高級別的領導批準。這種制度就是典型的權力越大職責越大——畢竟,批長假的職責只在高級主管那里存在。

除了規定出這樣細致的要求之外,大部分公司還有用軟件實現了請假流程,當請假人員提出請假申請的時候,會依據請假天數,轉發給具有權限的人員審批,讓我們看看這個系統的代碼實現吧。

請假系統實現

在這個系統中,我們假定: 小組長可以審批3天以內的請假請求 部門經理可以審批5天以內的請假請求 10天以內的請假請求只有老板才能審批 我們同時假定,這個公司的管理層非常人性化,請假都能得到批準,除非大于10天,因為這種情況沒人可以審批 

請假申請

這是最簡單的類,封裝了請假天數和請假申請人

class VacationRequest{ public int DayNum { get; set; } public string RequesterName { get; set; }}

假期審批者

首先創建一個抽象類,假期審批者,封裝假期審批的基本邏輯,即,如果當前人員有權限審批當前假期申請,就處理

abstract class VacationApprover{ protected VacationApprover(int dayCanHandle) { DayCanHandle = dayCanHandle; } public int DayCanHandle { get; protected set; } public void HandleVacationRequest(VacationRequest request) { if (request.DayNum <= DayCanHandle) { DoHandleVacationRequest(request); } } protected abstract void DoHandleVacationRequest(VacationRequest request);}

當然,抽象類只需要確定算法骨架,限定只有當前人員能處理這個請求的時候,才進行審批工作,至于具體的審批實現,留給子類自己去覆蓋,這種在父類固定算法骨架,暴露部分覆蓋點給子類的做法,就是之前我們提到過的TemplateMethod模式

具體假期審批者

小組長,部門經理,老板,都在這里創建,他們分別處理能審批3、5、10天的請假申請

class TeamLeader : VacationApprover{ private const int DAY_CAN_HANDLE_TEAMLEADER = 3; public TeamLeader() : base(DAY_CAN_HANDLE_TEAMLEADER) { } protected override void DoHandleVacationRequest(VacationRequest request) { Console.WriteLine("Now team leader handle this request"); Console.WriteLine("Team leader accept this request"); }}class DepartmentLeader : VacationApprover{ private const int DAY_CAN_HANDLE_DEPARTMENTLEADER = 5; public DepartmentLeader() : base(DAY_CAN_HANDLE_DEPARTMENTLEADER) { } protected override void DoHandleVacationRequest(VacationRequest request) { Console.WriteLine("Now department leader handle this request"); Console.WriteLine("Department leader accept this request"); }}class Boss : VacationApprover{ private const int DAY_CAN_HANDLE_BOSS = 10; public Boss() : base(DAY_CAN_HANDLE_BOSS) { } protected override void DoHandleVacationRequest(VacationRequest request) { Console.WriteLine("Now boss handle this request"); Console.WriteLine("Boss accept this request"); }}

請假審批系統

請假審批系統提供統一請假申請接口,內部通過請假天數決定哪個審批者參與審批

class VacationApproveSystem{ private VacationApprover teamLeader = new TeamLeader(); private VacationApprover departmentLeader = new DepartmentLeader(); private VacationApprover boss = new Boss(); public void HandleVacationRequest(VacationRequest request) { Console.WriteLine("Now handle {0}'s {1} days' vacation request", request.RequesterName, request.DayNum); if (request.DayNum <= teamLeader.DayCanHandle) { teamLeader.HandleVacationRequest(request); } else if (request.DayNum <= departmentLeader.DayCanHandle) { departmentLeader.HandleVacationRequest(request); } else if (request.DayNum <= boss.DayCanHandle) { boss.HandleVacationRequest(request); } else { Console.WriteLine("Cannot handle this request after all"); } }}

測試代碼

class Program{ static void Main(string[] args) { VacationApproveSystem system = new VacationApproveSystem(); system.HandleVacationRequest(new VacationRequest() { DayNum = 5, RequesterName = "laohu" }); system.HandleVacationRequest(new VacationRequest() { DayNum = 10, RequesterName = "laohu" }); system.HandleVacationRequest(new VacationRequest() { DayNum = 12, RequesterName = "laohu" }); }}

結果顯示

一切都是正常的,當5天時,部門經理審批,10天時,老板審批,大于10天無人能批。 Good job。

回頭看看

實現了第一版代碼之后,我們再回過頭看看,雖然代碼功能無誤,但是VacationApproveSystem似乎承擔了過多的職責,它不但需要提供統一的請假審批接口給最終用戶,它同時還需要知道每個請假審批者能審批的請假天數并在內部實現請假請求轉發給不同審批者的邏輯。這樣既違反了迪米特法則——它知道的太多了,也違反了開閉原則——如果任何一個審批者修改了自身能審批的請假天數,這個類都會被波及,最后,它還違反了單一職責——一個類只能有一個引起變化的原因。

有鑒于此,我們這版代碼只能算湊合用,但遠遠談不上結構良好,老老實實地重構代碼吧,下面請出我們今天的主角。

職責鏈模式

解耦具體對象和請求,使得多個對象都有機會處理請求。將對象連成一條鏈,沿著鏈傳遞請求直到有對象處理它

乍一聽有點生澀,翻譯一下就是 解耦具體對象和請求——不要預先指定哪個對象來處理此請求(因為很多時候并不知道) 使多個對象都有機會——有一眾候選對象,具體使用哪個對象是在運行時決定的 連成鏈傳遞請求——像鏈表一樣,要在對象中體現出對象之間的鏈關系,而不要通過其他類以if..else的方式實現

所以,這么看來這個模式和我們的例子簡直是絕配,我們已經做了大部分的工作了,現在剩下的就只是修改審批者,讓審批者能鏈起來 

代碼重構

修改請假審批基類

最重要的改動,就是修改基類,讓對象能鏈起來,在VacationApprover中添加一個后繼節點和一個設置后繼節點的方法。同時在基類的審批方法中,完成請求傳遞,即,如果請假申請超過了當前審批人的能力范圍,則轉發至后繼節點。修改后的類如下

abstract class VacationApprover{ private VacationApprover nextVacationApprover = null; public void SetNextVacationApprover(VacationApprover approver) { nextVacationApprover = approver; } protected VacationApprover(int dayCanHandle) { DayCanHandle = dayCanHandle; } public int DayCanHandle { get; protected set; } public void HandleVacationRequest(VacationRequest request) { if (request.DayNum <= DayCanHandle) { DoHandleVacationRequest(request); } else { if(nextVacationApprover != null) { nextVacationApprover.HandleVacationRequest(request); } else { Console.WriteLine("Cannot handle this request after all"); } } } protected abstract void DoHandleVacationRequest(VacationRequest request);}

修改請假審批系統

基類重構結束之后,請假審批系統就可以瘦身了,刪除了所有判斷邏輯,僅僅在構造函數里面完成鏈組建的工作,接著一鍵調用,齊活。

class VacationApproveSystem{ private VacationApprover teamLeader = new TeamLeader(); private VacationApprover departmentLeader = new DepartmentLeader(); private VacationApprover boss = new Boss(); public VacationApproveSystem() { teamLeader.SetNextVacationApprover(departmentLeader); departmentLeader.SetNextVacationApprover(boss); } public void HandleVacationRequest(VacationRequest request) { Console.WriteLine("Now handle {0}'s {1} days' vacation request", request.RequesterName, request.DayNum); teamLeader.HandleVacationRequest(request); }}

測試

其他請假審批子類和測試客戶端都不需要改動,這次重構工作量非常小,運行代碼,一切正常,重構成功。

總結

這就是職責鏈模式的使用。和狀態模式有點像,解決了以下問題: 通過添加子類把一些邏輯判斷從調用類(VaccationApproveSystem)移到子類的方式,使得調用類滿足迪米特法則 想在職責鏈上面添加更多節點的時候,只需要添加新類和修改鏈組裝部分的代碼,基本滿足開閉原則(這里幾乎不可能完全滿足開閉原則,畢竟有修改就意味著我們肯定會改動VaccationApproveSystem類,只是我們應該盡量的讓代碼改動量少,以提高控制代碼變動的能力)

和狀態模式一樣,它也有子類爆炸的風險。

可能有朋友會感到疑惑,既然職責鏈模式和狀態模式看起來那么像,那它們有什么區別呢?它們的區別在于: 狀態模式中的對象是有狀態的,可以隨時通過接口查詢對象的當前狀態,對象正是因為有了不同的狀態,才會表現出不同行為。而職責鏈模式中的對象沒有狀態,對象和鏈的關系更像請求和處理管線的關系,沒有接口能告訴我們當前在處理管線的哪個節點,也沒有意義這么做,我們只關心請求是否被處理了 狀態模式中的狀態切換可以是無序的,比如,一個游戲角色,當他的狀態是虛弱的時候,可以通過治療,轉換成健康,也可以通過受傷轉換成瀕死。而職責鏈中的請求轉發就只有向前一條路,從小組長到部門經理,從部門經理到老板

根據不同的情景,選擇合適的模式,才是正確的使用之道。以上就是今天的內容,希望大家喜歡,我們下次見!

以上就是實例講解C#中的職責鏈模式的詳細內容,更多關于C# 職責鏈模式的資料請關注真格學網其它相關文章!

總體來說設計模式分為三大類:一、創建型模式,共五種:工廠方法模式、抽象工廠模式、單例模式、建造者模式、原型模式。二、結構型模式,共七種:適配器模式、裝飾器模式、代理模式、外觀模式、橋接模式、組合模式、享元模式。三、行為型模式,共十一種:策略模式、模板方法模式、觀察者模式、迭代子模式、責任鏈模式、命令模式、備忘錄模式、狀態模式、訪問者模式、中介者模式、解釋器模式。1、工廠方法模式:定義一個用于創建對象的接口,讓子類決定實例化哪一個類。Factory Method 使一個類的實例化延遲到其子類。工廠模式有一個問題就是,類的創建依賴工廠類,也就是說,如果想要拓展程序,必須對工廠類進行修改,這違背了閉包原則,所以,從設計角度考慮,有一定的問題,這就用到工廠方法模式。創建一個工廠接口和創建多個工廠實現類,這樣一旦需要增加新的功能,直接增加新的工廠類就可以了,不需要修改之前的代碼。2、抽象工廠模式:提供一個創建一系列相關或相互依賴對象的接口,而無需指定它們具體的類。抽象工廠需要創建一些列產品,著重點在于"創建哪些"產品上,也就是說,如果你開發,你的主要任務是劃分不同差異的產品線,并且盡量保持每條產品線接口一致,從而可以從同一個抽象工廠繼承。3、單例模式:單例對象(Singleton)是一種常用的設計模式。在Java應用中,單例對象能保證在一個JVM中,該對象只有一個實例存在。這樣的模式有幾個好處:(1)某些類創建比較頻繁,對于一些大型的對象,這是一筆很大的系統開銷。(2)省去了new操作符,降低了系統內存的使用頻率,減輕GC壓力。(3)有些類如交易所的核心交易引擎,控制著交易流程,如果該類可以創建多個的話,系統完全亂了。(比如一個軍隊出現了多個司令員同時指揮,肯定會亂成一團),所以只有使用單例模式,才能保證核心交易服務器獨立控制整個流程。4、建造者模式:將一個復雜對象的構建與它的表示分離,使得同樣的構建過程可以創建不同的表示。5、原型模式:原型模式雖然是創建型的模式,但是與工程模式沒有關系,從名字即可看出,該模式的思想就是將一個對象作為原型,對其進行復制、克隆,產生一個和原對象類似的新對象。本小結會通過對象的復制,進行講解。在Java中,復制對象是通過clone()實現的,先創建一個原型類。6、適配器模式:適配器模式將某個類的接口轉換成客戶端期望的另一個接口表示,目的是消除由于接口不匹配所造成的類的兼容性問題。主要分為三類:類的適配器模式、對象的適配器模式、接口的適配器模式。7、裝飾器模式:顧名思義,裝飾模式就是給一個對象增加一些新的功能,而且是動態的,要求裝飾對象和被裝飾對象實現同一個接口,裝飾對象持有被裝飾對象的實例。8、代理模式:代理模式就是多一個代理類出來,替原對象進行一些操作,比如我們在租房子的時候回去找中介,為什么呢?因為你對該地區房屋的信息掌握的不夠全面,希望找一個更熟悉的人去幫你做,此處的代理就是這個意思。9、外觀模式:外觀模式是為了解決類與類之家的依賴關系的,像spring一樣,可以將類和類之間的關系配置到配置文件中,而外觀模式就是將他們的關系放在一個Facade類中,降低了類類之間的耦合度,該模式中沒有涉及到接口。10、橋接模式:橋接模式就是把事物和其具體實現分開,使他們可以各自獨立的變化。橋接的用意是:將抽象化與實現化解耦,使得二者可以獨立變化,像我們常用的JDBC橋DriverManager一樣。JDBC進行連接數據庫的時候,在各個數據庫之間進行切換,基本不需要動太多的代碼,甚至絲毫不用動,原因就是JDBC提供統一接口,每個數據庫提供各自的實現,用一個叫做數據庫驅動的程序來橋接就行了。11、組合模式:組合模式有時又叫部分-整體模式在處理類似樹形結構的問題時比較方便。使用場景:將多個對象組合在一起進行操作,常用于表示樹形結構中,例如二叉樹,數等。12、享元模式:享元模式的主要目的是實現對象的共享,即共享池,當系統中對象多的時候可以減少內存的開銷,通常與工廠模式一起使用。13、策略模式:策略模式定義了一系列算法,并將每個算法封裝起來,使其可以相互替換,且算法的變化不會影響到使用算法的客戶。需要設計一個接口,為一系列實現類提供統一的方法,多個實現類實現該接口,設計一個抽象類(可有可無,屬于輔助類),提供輔助函數。14、模板方法模式:一個抽象類中,有一個主方法,再定義1.n個方法,可以是抽象的,也可以是實際的方法,定義一個類,繼承該抽象類,重寫抽象方法,通過調用抽象類,實現對子類的調用。15、觀察者模式:觀察者模式很好理解,類似于郵件訂閱和RSS訂閱,當我們瀏覽一些博客或wiki時,經常會看到RSS圖標,就這的意思是,當你訂閱了該文章,如果后續有更新,會及時通知你。其實,簡單來講就一句話:當一個對象變化時,其它依賴該對象的對象都會收到通知,并且隨著變化!對象之間是一種一對多的關系。16、迭代子模式:顧名思義,迭代器模式就是順序訪問聚集中的對象,一般來說,集合中非常常見,如果對集合類比較熟悉的話,理解本模式會十分輕松。這句話包含兩層意思:一是需要遍歷的對象,即聚集對象,二是迭代器對象,用于對聚集對象進行遍歷訪問。17、責任鏈模式:責任鏈模式,有多個對象,每個對象持有對下一個對象的引用,這樣就會形成一條鏈,請求在這條鏈上傳遞,直到某一對象決定處理該請求。但是發出者并不清楚到底最終那個對象會處理該請求,所以,責任鏈模式可以實現,在隱瞞客戶端的情況下,對系統進行動態的調整。18、命令模式:命令模式的目的就是達到命令的發出者和執行者之間解耦,實現請求和執行分開。19、備忘錄模式:主要目的是保存一個對象的某個狀態,以便在適當的時候恢復對象,個人覺得叫備份模式更形象些,通俗的講下:假設有原始類A,A中有各種屬性,A可以決定需要備份的屬性,備忘錄類B是用來存儲A的一些內部狀態,類C呢,就是一個用來存儲備忘錄的,且只能存儲,不能修改等操作。20、狀態模式:狀態模式在日常開發中用的挺多的,尤其是做網站的時候,我們有時希望根據對象的某一屬性,區別開他們的一些功能,比如說簡單的權限控制等。21、訪問者模式:訪問者模式把數據結構和作用于結構上的操作解耦合,使得操作集合可相對自由地演化。訪問者模式適用于數據結構相對穩定算法又易變化的系統。因為訪問者模式使得算法操作增加變得容易。若系統數據結構對象易于變化,經常有新的數據對象增加進來,則不適合使用訪問者模式。訪問者模式的優點是增加操作很容易,因為增加操作意味著增加新的訪問者。訪問者模式將有關行為集中到一個訪問者對象中,其改變不影響系統數據結構。其缺點就是增加新的數據結構很困難。22、中介者模式:中介者模式也是用來降低類類之間的耦合的,因為如果類類之間有依賴關系的話,不利于功能的拓展和維護,因為只要修改一個對象,其它關聯的對象都得進行修改。如果使用中介者模式,只需關心和Mediator類的關系,具體類類之間的關系及調度交給Mediator就行,這有點像spring容器的作用。23、解釋器模式:解釋器模式一般主要應用在OOP開發中的編譯器的開發中,所以適用面比較窄。擴展資料:介紹三本關于設計模式的書:1、《設計模式:可復用面向對象軟件的基礎》作者:[美]Erich Gamma,Richard Helm,Ralph Johnson,John Vlissides出版社:機械工業出版社2、《軟件秘笈:設計模式那點事》作者:鄭阿奇出版社:電子工業出版社3、《設計模式:基于C#的工程化實現及擴展》作者:王翔出版社:電子工業出版社參考資料來源:百度百科-設計模式內容來自www.anxorj.tw請勿采集。


  • 本文相關:
  • c#設計模式之chainofresponsibility職責鏈模式解決真假美猴王問題實例
  • c#職責鏈模式實例詳解
  • 快速學習c# 設計模式之職責鏈模式
  • 一個可逆加密的類(使用3des加密)
  • c# 多線程對資源讀寫時如何控制的方法
  • c#中byte[]和string之間轉換的方法
  • c#如何給枚舉類型增加一個描述特性詳解
  • c#與php的md5計算結果不同的解決方法
  • 利用aspose.word控件實現word文檔的操作
  • c#的靜態工廠方法與構造函數相比有哪些優缺點
  • c#字符串值類型與引用類型比較示例
  • mongodb在csharp里實現aggregate實例
  • 字符串和十六進制之間的轉換方法實例
  • 設計模式都有哪些?
  • 初中數學課堂教學板書設計有哪些
  • 列出幾種軟件開發中常見的設計模式并解釋
  • 病區護士長如何提高護理質量管理
  • 怎么把er圖轉換成關系二維表
  • 怎樣把ER圖變成二維表。。
  • 如何在化學教學中滲透心理健康教育
  • 網站首頁網頁制作腳本下載服務器操作系統網站運營平面設計媒體動畫電腦基礎硬件教程網絡安全c#教程vbvb.netc 語言java編程delphijavaandroidiosswiftscala易語言匯編語言其它相關首頁c#設計模式之chainofresponsibility職責鏈模式解決真假美猴王問題實例c#職責鏈模式實例詳解快速學習c# 設計模式之職責鏈模式一個可逆加密的類(使用3des加密)c# 多線程對資源讀寫時如何控制的方法c#中byte[]和string之間轉換的方法c#如何給枚舉類型增加一個描述特性詳解c#與php的md5計算結果不同的解決方法利用aspose.word控件實現word文檔的操作c#的靜態工廠方法與構造函數相比有哪些優缺點c#字符串值類型與引用類型比較示例mongodb在csharp里實現aggregate實例字符串和十六進制之間的轉換方法實例c#幾種截取字符串的方法小結c#中httpwebrequest的用法詳解c# datagridview添加新行的2個方c# 一個wcf簡單實例c#中list〈string〉和string[]數c#連接mysql數據庫的方法c#的dllimport使用方法詳解c#中使用split分割字符串的幾種方c#處理3種json數據的實例c#實現16進制和字符串之間轉換的c# 透明窗體制作實現方法比較分析c#用for語句輸出一個三角形的方法解決c#中webbrowser的documentcompleted事c#中timer使用及解決重入問題c#中事件的定義和使用c#實現combobox控件顯示出多個數據源屬性c#獲取并修改文件擴展名的方法c# winform 自動更新程序實例詳解c# 通過反射初探orm框架的實現原理(詳解)c#入門之索引器使用實例
    免責聲明 - 關于我們 - 聯系我們 - 廣告聯系 - 友情鏈接 - 幫助中心 - 頻道導航
    Copyright © 2017 www.anxorj.tw All Rights Reserved
    陕西快乐10分下载