Time of Update: 2017-02-27
在我的上一篇文章中和大家討論了如何使用.NET Framework中提供的類在C#中讀取XML以及讀取的一些相關概念,那麼今天就說一說如何在C#中編寫XML文檔,起初我覺得用編程的方式去編寫XML簡直就是自討苦吃,後來想想還是覺得挺有用的,我想Microsoft那班傢伙能編出這些類來應該不是僅僅為了向比爾i蓋茨交差吧!至於它的用處嘛……比如說做安裝程式啊!我們可以根據在安裝過程中使用者所選的選項以及一些設定來產生相應的XML文檔再根據XML文檔來初始化我們的應用程式。
Time of Update: 2017-02-27
首先從原理上解釋一下採用Socket介面的網路通訊,這裡以最常用的C/S模式作為範例,首先,服務端有一個進程(或多個進程)在指定的連接埠等待客戶來串連,服務程式等待客戶的串連資訊,一旦串連上之後,就可以按設計的資料交換方法和格式進行資料轉送。用戶端在需要的時刻發出向服務端的串連請求。這裡為了便於理解,提到了一些調用及其大致的功能。使用socket調用後,僅產生了一個可以使用的socket描述符,這時還不能進行通訊,還要使用其他的調用,以使得socket所指的結構中使用的資訊被填寫完。在使用TCP
Time of Update: 2017-02-27
一、弄清結構再動手要想輕鬆的抽取RSS資訊,自然先要瞭解它的結構,所謂“知己知彼,百戰不殆”嘛。1、RSS的結構我們先開啟百度新聞一個RSS連結,如果你再多開啟幾個別的網站的RSS連結,會發現他們都有大致相同的結構。而我們在揭秘RSS(上)中為大家講解的其實就是編成實現這樣的一個XML檔案。為了能夠方便地對這樣的XML文檔進行處理,在本文裡,我們使用C#作為開發的語言。分析整個RSS連結後,我們知道RSS大致的結構入圖1。2、抽取的原理知道了結構,我們還要知道結構中各部分
Time of Update: 2017-02-27
在Visual Studio.NET Beta 1版本中訪問IBM DB2等非SQL Server資料庫通常是使用ADO.NET的ODBC方法,而在Beta 2中則改用OLE DB方式存取資料庫。Beta1中連接字串主要需聲明資料庫的ODBC的DNS名字,但Beta 2中的OLE DB串連的字串就較複雜了,使用的類也不相同。由於DB2等資料庫在大型主機等應用中使用非常廣泛,.NET自然會全力支援此類編程開發,為此,下文將逐步闡述OLE DB的DB2開發。OLE DB for
Time of Update: 2017-02-27
最近頻繁的接觸到泛型方面的問題,所以也不得不來學習一下了,開始主要是在MSDN的WebCast上去下載教學錄象看的(李建忠老師的),本篇文章先介紹一下泛型入門方面的知識,希望能讓剛開始學習泛型的朋友能夠更快的入門,言歸正傳,首先我們來看一下泛型的基本概念。最顯著的一點就是它參數化了類型,把類型作為參數抽象出來,從而使我們在實際的運用當中能夠更好的實現代碼的重複利用,同時它提供了更強的型別安全,更高的效率,不過在約束方面,它只支援顯示的約束,這樣在靈活性方面就顯得不是那麼好了。我覺得它之所以能夠提
Time of Update: 2017-02-27
命名空間提供了一種組織相關類和其他類型的方式。與檔案或組件不同,命名空間是一種邏輯組合,而不是物理組合。在C#檔案中定義類時,可以把它包括在命名空間定義中。以後,在定義另一個類,在另一個檔案中執行相關操作時,就可以在同一個命名空間中包含它,建立一個邏輯組合,告訴使用類的其他開發人員這兩個類是如何相關的以及如何使用它們:namespace CustomerPhoneBookApp{ using System; public struct Subscriber { // Code for
Time of Update: 2017-02-27
一.Web服務概述:Web服務是一種新的Web應用程式分支,它們是自包含、自描述、模組化的應用,發行就緒、定位、通過Web調用。Web服務可以執行從簡單的請求到複雜商務處理的任何功能。一旦部署以後,其他Web服務應用程式可以發現並調用它部署的服務。Web服務可以把商務邏輯劃分一個一個的組件,然後在整個網際網路的範圍上執行其功能。所以,它是構造分布式、模組化應用程式的最新技術發展趨勢。二.為什麼需要Web服務?以前,分布式的應用程式邏輯需要使用分布式的物件模型,通過使用DCOM、CORBA、RMI
Time of Update: 2017-02-27
在網路環境下,我們最感興趣的兩個命名空間是System.Net和System.Net.Sockets。System.Net命名空間通常與較高程的操作有關,例如download或upload,試用HTTP和其他協議進行Web請求等等,而System.Net.Sockets命名空間所包含的類通常與較低程的操作有關。如果要直接使用Sockets或者TCP/IP之類的協議,這個命名空間的類是非常有用的。在.Net中,System.Net.Sockets 命名空間為需要嚴密控制網路訪問的開發人員提供了
Time of Update: 2017-02-27
匿名方法基礎匿名方法是C#2.0的一個新的語言特性。本文的主要內容是提供給讀者關於匿名方法的內部實現和工作方式的一個更好的理解。本文無意於成為匿名方法的完全語言特性參考。匿名方法允許我們定義委派物件可以接受的代碼塊。這個功能省去我們建立委託時想要傳遞給一個委託的小型代碼塊的一個額外的步驟。它也消除了類代碼中小型方法的混亂。讓我們看看:比方說,我們有一個字串集合命名為MyCollection。這個類有一個方法:獲得集合中滿足使用者提供的過濾準則的所有項,調用者決定在集合中的一個特殊項是否符合條件而
Time of Update: 2017-02-27
delegate經常被人用來與回調相比較,其實兩者在某種程度上由很多共同點。不過delegate有很多更加強大的地方。首先,delegate中可以註冊任意多個回調,在一個delegate被調用的時候,已經註冊的過程將會被逐個調用。其次,delegate允許註冊一個對象的方法,而不像C++中指可以使用靜態方法或者全域方法作為函數指標,提供了更多的靈活性,同時也暗示我們,delegate中按照某種方式儲存了object的很多資訊。在C#2.0的匿名delegate中,我們甚至可以訪問當前匿名委託的上
Time of Update: 2017-02-27
一個稍微複雜一點的程式一般都有二個或者更多的表單。有時在程式設計中,資料不僅要在同一個表單中傳遞,還要在表單間傳遞,這種傳遞是主表單與從表單之間資料的互相傳遞。從本文開始,我們將列舉不同表單間資料傳遞的四種情況,和用Visual C#實現這四種情況的具體方法。下面先介紹用Visual C#實現表單間傳遞資料中第一種情況——從主表單向從表單傳遞字串。在閱讀完本文後,你還嘗試一下利用此方法在表單間傳送數值等資料。本文中程式設計、調試、啟動並執行軟體環境:Windows2000
Time of Update: 2017-02-27
管道技術一般採用Window API來實現,最近我試著用C#來實現Windows管道技術,發現C#本身方便的進程線程機制使工作變得簡單至極,隨手記錄一下,推薦給大家。首先,我們可以通過設定Process類,擷取輸出介面,代碼如下:Process proc = new Process();proc .StartInfo.FileName = strScript;proc .StartInfo.WorkingDirectory = strDirectory;proc
Time of Update: 2017-02-27
使用System.Management命名空間下的ManagementObjectSearcher類可以擷取主板編號資訊。首先添加對System.Management類庫的引用。然後添加下述代碼,就可獲得主板的編號。主要程式碼。private void button1_Click(object sender, EventArgs e){ SelectQuery Query = new SelectQuery("SELECT * FROM Win32_BaseBoard"
Time of Update: 2017-02-27
利用C#編程,查看系統日誌,介紹兩個日誌類:EventLog和EventLogEntry類,以及與系統日誌進行互動。.NET架構類庫提供了EventLog類和EventLogEntry類與系統日誌進行互動.二者屬於System.Diagnostics命名空間.首先聲明一變數:private EventLogEntryCollection eventCollection
Time of Update: 2017-02-27
(1)NULLnull 關鍵字是表示不引用任何對象的Null 參考的文字值。null 是參考型別變數 的預設值。那麼也只有引用型的變數可以為NULL,如果 int i=null,的話,是不 可以的,因為Int是實值型別的。(2)""和String.Empty這兩個都是表示Null 字元串。只不過""理論上重新開闢記憶體空間,而 String.Empty指向一處。不過最佳化器會最佳化的!string.Empty不分配儲存空間,
Time of Update: 2017-02-27
這兩天看到園子裡面有幾篇關於dynamic怎麼用的文章,咋一看搞不明白這個 dynamic到底有啥用,反而讓我多了兩個問題:寫程式時少了智能感知;運行程式時速度變慢(反射)。今天看完New features in CSharp 4.docx才恍然明白,趁著沒事,把東西整 理一下,希望能對暫時還不明白dynamic有什麼用的朋友提供一些參考。當然,由 於本人才疏學淺,不保證所有的觀點都是正確的,希望大家用辯證的眼光來看這
Time of Update: 2017-02-27
在System.IO命名空間下的DriveInfo類的GetDrives()方法可以用來獲得電腦上的所有邏輯磁碟機的名稱。DriveInfo類的TotalSize屬性可義獲得磁碟的空間大小。主要代碼如下。private void Form1_Load(object sender, EventArgs e){ System.IO.DriveInfo[] drive=System.IO.DriveInfo.GetDrives(); for (int i = 0; i <
Time of Update: 2017-02-27
結構模式(Structural Pattern)描述如何將類或者對象結合在一起形成更大的結構。結構模式描述兩種不同的東西:類與類的執行個體。根據這一點,結構模式可以分為類的結構模式和對象的結構模式。後續內容將包括以下結構模式:適配器模式(Adapter):Match interfaces of different classes合成模式(Composite):A tree structure of simple and composite objects裝飾模式(Decorator):Add
Time of Update: 2017-02-27
一、享元(Flyweight)模式Flyweight在拳擊比賽中指最輕量級,即"蠅量級",有些作者翻譯為"羽量級"。這裡使用"享元模式"更能反映模式的用意。享元模式以共用的方式高效地支援大量的細粒度對象。享元對象能做到共用的關鍵是區分內蘊狀態(Internal State)和外蘊狀態(External
Time of Update: 2017-02-27
行為模式(Behavioral Pattern)是對在不同的對象之間劃分責任和演算法的抽象化。行為模式不僅僅是關於類和對象的,而且是關於它們之間的相互作用的。行為模式分為類的行為模式和對象的行為模式兩種。類的行為模式:類的行為模式使用繼承關係在幾個類之問分配行為。對象的行為模式:對象的行為模式則使用對象的彙總來分配行為。在後面將要介紹的行為模式包括以下幾種:Chain of Resp.(責任鏈模式)A way of passing a request between a chain of