Time of Update: 2017-02-27
這是最近在做的一個項目中提到的需求,把一個現有的表單應用程式介面嵌入到自己開發的表單中來,看 起來就像自己開發的一樣(實際上……跟自己開發的還是有一點點區別的,就是內嵌程式和宿主程式的視窗激 活狀態問題)。在codeproject找到了一篇相關的文章 (http://www.codeproject.com/Articles/9123/Hosting-EXE-Applications-in-a-WinForm-project),雖然
Time of Update: 2017-02-27
簡介圖表示點之間的關係,在C#中通過節點對象的集合來表示點(Vertex),用鄰接矩陣(adjacency matrix)來表示點之間的關係。下面來看C#實現。PS:本片文章是我複習的筆記,代碼注釋很全。勿吐槽。表示點的對象下面實現代碼:class Vertex { publicstring Data; publicbool IsVisited; public Vertex(string Vertexdata) {
Time of Update: 2017-02-27
簡介樹是一種非線性結構。樹的本質是將一些節點由邊串連起來,形成層級的結構。而二叉樹是一種特殊的樹,使得樹每個子節點必須小於等於2.而二叉尋找樹又是一類特殊的二叉樹。使得每一個節點的左節點或左子樹的所有節點必須小於這個節點,右節點必須大於這個節點。從而方便高效搜尋。下面來看如何使用C#實現二叉尋找樹。實現節點二叉尋找樹是節點的集合。因此首先要構建節點,如代碼1所示。//二叉尋找樹的節點定義publicclass Node { //節點本身的資料publicint data;
Time of Update: 2017-02-27
搞了SQL
Time of Update: 2017-02-27
效能主要指兩個方面:記憶體消耗和執行速度。效能最佳化簡而言之,就是在不影響系統運行正確性的前提下 ,使之運行地更快,完成特定功能所需的時間更短。本文以.NET平台下的控制項產品MultiRow為例,描 述C#效能最佳化的實踐。效能最佳化原則理解需求MultiRow的一個效能需求是:“百萬行 資料繫結下平滑滾動。”整個MultiRow項目的開發過程一直在考慮這個目標。·
Time of Update: 2017-02-27
最近項目需要實現一個功能:讀取doc,docx,pdf檔案內容。在網上搜羅許久,還是發現有些好東西可以直接拿來使用,要不然就得自己發明輪子了。接下來我就簡單介紹了用了哪些組件來實現這個功能的。Doc文檔:Microsoft Word 14.0 Object Library (GAC對象,調用前需要安裝word。安裝的word版本不同,COM的版本號碼也會不同)Docx文檔:Microsoft Word 14.0 Object Library
Time of Update: 2017-02-27
BHO(Browser Helper Object)是外掛程式,它寄存在IE瀏覽器中運行。在咱們的日常生活中無時無刻都在使 用BHO,比如:迅雷檢測使用者是否單擊了下載連結的BHO。用BHO也能做出些非常有意思的程式:竊取使用者在網 頁上輸入的密碼資訊等。接下來,咱們也來製作一個惡搞的BHO吧,該BHO的功能如下:1.註冊 成功後,每當使用者瀏覽一個新的網頁時,會自動在該網頁中注入一個按鈕2.點擊該按鈕能擷取使用者在 該網頁中輸入的敏感資訊操作步驟圖1圖2
Time of Update: 2017-02-27
隔離儲存區 (Isolated Storage)器和映射記憶體都是用來處理常式資料問題。隔離儲存區 (Isolated Storage)器可以用來臨時儲存程式的一些不重要資料 ,映射記憶體檔案則可以用來解決程式資料讀取的問題。當程式在運行過程中需要載入大量的外部資料時,用它 來做一個資料快取區域將是一個不錯的選擇。隔離儲存區 (Isolated Storage)器static void UserIsolationFile() { //this file was
Time of Update: 2017-02-27
MEF和MAF都是C#下的外掛程式編程架構,我們通過它們只需簡單的配置下原始碼就能輕鬆的實現外掛程式編程概念,設計出可擴充的程式。這真是件美妙的事情!MEF(Managed Extensibility Framework)MEF的工作原理大概是這樣的:首先定義一個介面,用這個介面來約束外掛程式需要具備的職責;然後在實現介面的程式方法上面添加反射標記“[Export()]”將實現的內容匯出;最後在介面的調用程式中通過屬性將外掛程式載入進來。我們還是用代碼來描述吧:1.
Time of Update: 2017-02-27
最近在做一個程式的Web Service,需要驗證帳號才能使用Web Service提供的方法,首先想到把帳號資訊附加在Soap頭中傳過去的方式,但在公司其他同事在使用非.net程式調用的時候發現有諸多不便。又Google了一鎮子,發現一個使用Session的方式,說起來還是找“Web Service分段上傳大附件”的時候看到的一個樣本,難怪以前找Web Service驗證的時候老找不到想要的結果。代碼比較簡單,主要代碼如下:/// <summary> ///
Time of Update: 2017-02-27
第 20章 Regex20.1 字元匹配20.2 可選字元集20.3 或匹配20.4 數量限定符20.5 貪婪和懶惰20.6 定位器20.7 分組和後向引用20.8 替換文本20.9 非捕獲分組和預查1.非捕獲分組?:2.正向預查?=3.反向預查?<=4.負正向預查?!5.負反向預查?<!6.注釋#20.10 Regex的類20.11 Regex的選項20.12 練習:驗證使用者輸入
Time of Update: 2017-02-27
第 20章 Regex20.1 字元匹配20.2 可選字元集20.3 或匹配20.4 數量限定符20.5 貪婪和懶惰20.6 定位器20.7 分組和後向引用20.8 替換文本20.9 非捕獲分組和預查1.非捕獲分組?:2.正向預查?=3.反向預查?<=4.負正向預查?!5.負反向預查?<!6.注釋#20.10
Time of Update: 2017-02-27
(一)前言繼《對象屬性之間的相互賦值 》後,關於集合對象屬性的賦值,主要可以通過迴圈遍曆集合中的對象來進行屬性間的賦值。這些可以運用於不同對象之間、相關屬性類似的情況。最常見的是web services與silverlight之間的對象賦值(對象之間的屬性值只有一部分是需要的),這樣可以減少silverlight對web
Time of Update: 2017-02-27
一、前言外掛程式模型指應用程式由一些動態獨立模組構成,每個模組均具有一個或多個服務,並滿足一定的外掛程式協議,能夠藉助主程式實現主程式-外掛程式,外掛程式-外掛程式之間的通訊。它定義了一套公用的介面,通過介面與外掛程式進行通訊,主要是通過反射來擷取相關的屬性和方法,然後再執行指定的操作。其實,它也可以理解為定義一套通用的解決方案,通過反射來擷取相應的程式集的相互關聯類型,然後執行這些指定類型的相關操作。它是一種隨插即用的方案,更新及維護簡便。本文僅僅是描述外掛程式開發的大體模型,設計比較簡單,主
Time of Update: 2017-02-27
一、前言音效模擬模式在許多情況下都很有用。 如果必須從已存在於記憶體中的非常大的集合填充一個 ListView 對象,則為每項建立一個 ListViewItem 對象會很浪費。 在音效模擬模式下,從緩衝之中擷取所需的資料進行載入,效能會有很大提高。 在其他情況下,可能需要經常重新計算 ListViewItem
Time of Update: 2017-02-27
一、前言可延伸標記語言 (XML) (XML)
Time of Update: 2017-02-27
一、前言上篇隨筆主要是針對於Xml的特性Attribute與實體之間的匹配與轉換。該篇隨筆主要內容為將對象轉換成相應的Xml以及XElement。這2篇隨筆以不同的方式對Xml進行轉換與匹配,每種匹配都採用不同的角度進行操作。本文主要為對象實體的轉換,下篇側重於Xml的匹配。二、Xml轉換2.1 實體集合轉換Xml實體集合轉換Xml的方法為:public static string ToXml<T>(IList<T> entities, string rootName =
Time of Update: 2017-02-27
一、前言上一篇隨筆主要將實體轉換成相應的Xml或者Xml對象,未考慮到屬性的Attribute特性,以後有時間再整理一下。本文中的Xml匹配涉及到類的特性和屬性的特性,並且對該類的匹配進行了相應的最佳化,盡量將反射引起的效能問題降低最低(其實,對於對象數量不是很多的Xml匹配,效能是可以忽略不計的)。二、類圖設計主要思路為:通過反射將與類名的節點匹配,然後匹配屬性(屬性特性名稱或者屬性名稱)值,設計圖如下所示:類圖中各個類的作用如下:PropertyAttribute、ClassAttribut
Time of Update: 2017-02-27
一、前言本文主要介紹C# GDI+如何繪製矩行的圓角,其中涉及到如何使用位操作來處理組合的技巧。GDI+的本質在於,它能夠替代開發人員實現與顯示器及其它外部裝置的互動。對於控制項美化而言,需要達到自己期望的效果,GDI+必不可少。繪製後的圓角效果圖如下:二、圓角枚舉與相應組合處理設計對於矩行而言,圓角分為左上方、右上方、左下角和右下角。組合情況就分為無圓角、一個圓角、二個圓角、三個圓角以及四個圓角。枚舉需要滿足該組合情況,沒必要在枚舉中將
Time of Update: 2017-02-27
一、前言上一篇繪製矩形圓角的方式不夠完善,感覺寫的太過於複雜,將簡單的問題複雜化了,本文對此進行了相應的改進,增強對各個圓角的半徑的控制。繪製後的圓角效果圖如下:二、圓角半徑設計對於矩行而言,圓角分為左上方、右上方、左下角和右下角。每一個角都會存在相應的半徑,用於控制每一個圓角的繪製。設計如下:public struct ArcRadius { private int _rightBottom; private int _rightTop;