Time of Update: 2018-12-07
目錄一、什麼是Windows 服務?二、建立Windows 服務與安裝/卸載批處理。三、調試Windows 服務。本文一、什麼是Windows 服務?答:Microsoft Windows 服務(即,以前的 NT 服務)使您能夠建立在它們自己的 Windows
Time of Update: 2018-12-07
有傳聞說,這年頭不用Git就不是個程式員。傳聞歸傳聞,近些年來Git的發展是如火如荼。除了一些公用的Git平台外,大多的Git服務端都是在Linux上的,Windows的可選方案實在甚少。作為一個.Net碼農,當然希望能有個純Managed 程式碼的Git服務端。經過一晚上的學習,用純Managed 程式碼寫了個Git服務端供大家參考。 學習資料:暫無。
Time of Update: 2018-12-07
流概念 流失位元組序列的抽象概念,如檔案的操作,輸入/輸出裝置,內部進行通訊的管道等,Stream類及其衍生類別提供這些不同類型的輸入和輸出的一般視圖,這樣的程式員就不必熟悉作業系統和基礎裝置的具體細節,也可以對流進行操作。流常用的三個基本操作:1. 讀取流:操作是從流到資料結構的資料轉送2. 寫入流:該操作時從資料結構到流的資料轉送3. 流支援尋找:尋找是對流內的當前位置進行查詢與修改以上三個功能可以通過CanRead
Time of Update: 2018-12-07
註:本文思路已經應用於“飛梭TXT文本資料處理百寶箱”中,有興趣的朋友可以下載試用。我們知道,如果需要批量產生海量無重複的隨機資料是個很麻煩的事情。如果每次產生都要和之前產生的資料進行比對的話,那效率會隨著資料量的增大而越來越低,最後不堪忍受。今天介紹一種另類的思路,可以高效的做到隨機資料無重複。分析:所謂隨機資料,就是在某個設定的區間內隨機提取一批資料出來。那麼我們可以變通的思考一下:我們可不可以將此設定的資料區間A按照所需的資料量N分成N個小的資料區間B,如果這樣的話,我們只需要每次從資料區
Time of Update: 2018-12-07
效果:因為工作中要用到 類似的代碼 google 了 半天也沒找到, 最後 還是 找到了 園中的 這一篇C# 模仿360安全衛士玻璃按鈕(源碼)因為本人水平有限, 但又急著用 所以 胡亂加了一點 代碼 勉強實現了 類似的效果 另外 感謝 原作者(阿東東)提供的 源碼 其它部分基本都沒有修改 主要是在 void DrawImage(Graphics g) 這個 代碼中添加了 畫圓角矩形和數字 效果 if
Time of Update: 2018-12-07
很多時候我們需要以編程的方式擷取命令列輸出的內容,研究了不少時間,終於搞定了。擷取命令列輸出內容的方式有傳統和非同步兩種方式。傳統方式: 1 using (Process process = new System.Diagnostics.Process()) 2 { 3 process.StartInfo.FileName = "ping"; 4 process.StartInfo.Arguments = "www.ymind.net"; 5 //
Time of Update: 2018-12-07
最近對代碼作了一些最佳化,實驗後效果還可以,但是發現介面會閃爍,具體是TreeView控制項會閃爍,語言為C#,IDE為VS2005。在查閱一些資料,使用了一些基本技術後(如開啟雙緩衝),發現沒什麼效果。於是使用Profiler工具,尋找出瓶頸在於每次更新完介面的EndUpdate操作(使用這個是為了減少介面更新次數,但這裡不理想是因為控制項中中的元素很多),猜想大概每次更新,.Net底層都會更新重繪每個圖元,所以速度會慢,造成閃爍。但是如果這樣,使用雙緩衝應該會有較好效果。再看代碼,發現可能是
Time of Update: 2018-12-07
文章目錄 Feedback 索引器是一種特殊的類成員,它能夠讓對象以類似數組的方式來存取,使程式看起來更為直觀,更容易編寫。1、索引器的定義C#中的類成員可以是任意類型,包括數組和集合。當一個類包含了數組和集合成員時,索引器將大大簡化對數組或集合成員的存取操作。定義索引器的方式與定義屬性有些類似,其一般形式如下:[修飾符] 資料類型this[索引類型 index]{get{//獲得屬性的代碼}
Time of Update: 2018-12-07
前面一篇博文:從C#5.0說起:再次總結C#非同步呼叫方法發展史,總結了非同步方法呼叫調用的發展史。關於C#2.0到5.0添加了一些什麼東西,前面一篇博文中如下寫到:1.0版本 - 基本C#文法。2.0版本 - 泛型的支援,CLR進行了升級,從根本上支援了運行時泛型。3.0版本 - LINQ,添加了from / join等類SQL關鍵字,添加了擴充函數,添加了編譯期動態類型var關鍵字。4.0版本 - dynamic關鍵字,CLR進行升級,加入DLR,開始對動態進行友好的支援。同時加入動態參數、
Time of Update: 2018-12-07
C#5.0最大的新特性,莫過於Async和Parallel。 以往我們為了讓使用者介面保持相應,我們可以直接使用非同步委託或是System.Threading命名空間中的成員,但System.Threading.Tasks命名空間提供了一種更加簡潔的方法---使用Task類。Task類可以輕鬆地在次線程中調用方法,可以作為非同步委託的簡單替代品。 關於Async,可以參考MSDN的Task 類以及使用 Async 和 Await 的非同步編程(C# 和 Visual
Time of Update: 2018-12-07
using System;using System.Collections.Generic;using System.Windows.Forms;using System.IO;namespace GobalException{ static class Program { /// <summary> /// 應用程式的主進入點。 /// </summary> [STAThread]
Time of Update: 2018-12-07
ref是傳遞參數的地址,out是傳回值,兩者有一定的相同之處,不過也有不同點。使用ref前必須對變數賦值,out不用。out的函數會清空變數,即使變數已經賦值也不行,退出函數時所有out引用的變數都要賦值,ref引用的可以修改,也可以不修改。 區別可以參看下面的代碼:using System;class TestApp{ static void outTest(out int x, out int y) {//離開這個函數前,必須對x和y賦值,否則會報錯。 //y = x;
Time of Update: 2018-12-07
這幾天看了不少C#方面的知識,感覺看了之後一段時間後就忘了,特寫個備忘,免得忘了又要從頭找起. 定義:Reflection,通過它我們可以在運行時動態獲得各種資訊,如程式集、模組、類型、欄位、屬性、方法和事件 自己參考資料後寫的代碼:using System;using System.Collections.Generic;using System.Text;using System.Reflection;namespace Refelction{ class
Time of Update: 2018-12-07
今天在寫一個簡單的Xml操作類,包括讀取xml,修改xml一節點下的Attribute Value, 如一節點不存在,則建立節點. 操作xml我習慣使用 XmlDocument ,建立一個新的節點,並添加Attribute的方法,代碼如下:CodeCode highlighting produced by Actipro CodeHighlighter
Time of Update: 2018-12-07
在公司這幾天一直都在看程式設計模式,看完的之後感覺還是似懂非懂,但心得還是頗多,程式設計中使用的原則有一條:面向介面編程,而且在設計過程中,要保證能在可以很方便的對程式進行拓展,而且不用改動現有的程式.下面是我自己設計的一個抽象工作模式,不知道我的理解是否正確. using System;using System.Collections.Generic;using System.Text;namespace 抽象原廠模式{ class Program {
Time of Update: 2018-12-07
今天update access資料庫時,使用了參數化的方式,結果不報錯,但是資料也沒有更新。後來發現access使用參數化時,參數位置必須和賦值順序相同才行,否則更新時就會出現資料無法更新但是也不報錯的怪現象。 例如:update tablename set [a]=@a1,[b]=@a2 where [id]=@a3 那麼你在加參數時,也必須先加@a,再加@b,最後加@id.也就是說必須要 cmd.Parameters.AddWithValue(“@a1”,a)
Time of Update: 2018-12-07
1. 一般型別系統C#中,變數是值還是引用僅取決於其資料類型。C#的基礎資料型別 (Elementary Data Type)都以平台無關的方式來定義。C#的預定義類型並沒有內建於語言中,而是內建於.NET
Time of Update: 2018-12-07
C#中擷取程式當前路徑的7種最常用的方法string str1 =Process.GetCurrentProcess().MainModule.FileName;//可獲得當前執行的exe的檔案名稱。 string str2=Environment.CurrentDirectory;//擷取和設定目前的目錄(即該進程從中啟動的目錄)的完全限定路徑。//備忘 按照定義,如果該進程在本地或網路磁碟機的根目錄中啟動,則此屬性的值為磁碟機名稱後跟一個尾部反斜線(如“C:\”)。如果該進程在子目錄中啟動,
Time of Update: 2018-12-07
文章目錄 執行 動態連結程式庫 (DLL) 在運行時連結到程式。為說明如何產生和使用 DLL,請看以下方案:MathLibrary.DLL:為庫檔案,其中包含運行時要調用的方法。此例中,DLL 包含兩個方法:Add 和 Multiply。Add.cs:為源檔案,其中包含 Add(long i, long j) 方法。該方法返回參數之和。包含 Add 方法的 AddClass 類是命名空間 UtilityMethods
Time of Update: 2018-12-07
margin-bottom:1.5pt;margin-left:0cm;text-align:left;line-height:13.5pt;mso-pagination:widow-orphan;mso-outline-level:2">一、 Factory 方法(Factory Method)模式Factory 方法(FactoryMethod)模式是類的建立模式,其用意是定義一個建立產品對象的工廠介面,將實際建立工作延遲到子類中。Factory