Time of Update: 2018-12-07
本程式用到的控制項只有三個按鈕,分別為:重啟,關機,退出。 開啟右邊的“方案總管”--展開樹結構--引用--添加引用---在彈出的對話方塊中找到System.Management---雙擊添加它---確定,即建成對System.Management.dll的引用。然後在程式的開頭再寫入 using System.Management; using System.Runtime.InteropServices; //加入此名字間是為了引用Windows API來實現關機 程式如下: -------
Time of Update: 2018-12-07
string str1 =Process.GetCurrentProcess().MainModule.FileName;//獲得當前執行的exe的檔案名稱。string str2=Environment.CurrentDirectory;//擷取和設定目前的目錄的完全限定路徑。string str3=Directory.GetCurrentDirectory();//擷取應用程式的當前工作目錄。string str4=AppDomain.CurrentDomain.BaseDirectory;
Time of Update: 2018-12-07
在.net中,委託,匿名方法和Lambda運算式是三個很容易讓人混淆的概念.以下代碼或許可見一斑:對First的調用中,哪些(個)會被編譯?哪些(個)將會返回我們所期待的答案?(ID號為5的Customer).事實上,答案就是:所有的6種方法不令都將編譯,而且它們都能夠返回正常的customer,它們在功能上是相同的.如果你還在問自己:為什麼是這樣呢?那麼,這篇文章將為你解答.class Customer { public int ID { get; set; } public
Time of Update: 2018-12-07
(根據MSDN Webcast 相關課程整理)物件導向很好的解決了系統抽象的問題,同是不會損害系統的效能。但是在某些特殊應用中,由於對象的數量太大,採用物件導向會給系統帶來難以承受的內在開銷。 比如:圖形應用中的圖元等對象,文書處理軟體中的字元對象等。 如果採用純粹對方案的問題在於大量細粒度的對象會很快充斥在系統中,從而帶來很高的運行代價。這時候,就應該考慮採用享元模式來處理問題。 GoF:運用共用技術處理大量細粒度對象。 採用享元模式設計思想,將重複的Font對象共用出來:
Time of Update: 2018-12-07
(根據MSDN WebCast相關課程整理)變化是軟體設計中永恒的主題,如何管理變化帶來的複雜性?設計模式的藝術性與複雜度就在於如何分析並發現系統中的變化點和穩定點,並使用特定的設計方法來應對這種變化。 事件架構穩定,而子步驟經常改變。 GoF:定義一個操作中的演算法的架構,而將一些步驟延遲到子類中,Template Method使用是子類可以不改變一個演算法的結構即可以重定義該演算法的某些特定步驟。
Time of Update: 2018-12-07
MessageBox.Show("當前表單標題列高度"+(this.Height - this.ClientRectangle.Height).ToString());//獲得當前表單標題列高度ClientRectangle//擷取表示控制項的工作區的矩形MessageBox.Show(SystemInformation.PrimaryMonitorSize.ToString()); //擷取主顯示器螢幕的尺寸(像素)
Time of Update: 2018-12-07
怎麼在C#中加入功能(文法,關鍵詞)?本文說的不是自訂類,函數之類的,指的是修改,增加C#的文法。重新開發一門新的語言,工作量太大,很難做到科學實用,而是也難以跟上C#的更新進度,所以選擇擴充C#的方法,以滿足專業領域的應用。情景一:定義一個交換運算子 <=> 實現函數 swap(a,b)的功能。上代碼int a = 3;int b = 5;a <=> b;之後a,b值互換(前提是a,b兩個變數是相容類型)情景二:定義with關鍵詞string[]
Time of Update: 2018-12-07
大家在實際工作學習C#的時候,可能會問:為什麼我們要為一些已經存在的功能(比如Windows中的一些功能,C++中已經編寫好的一些方法)要重新編寫代碼,C#有沒有方法可以直接都用這些原本已經存在的功能呢?答案是肯定的,大家可以通過C#中的DllImport直接調用這些功能。DllImport所在的名字空間 using
Time of Update: 2018-12-07
(根據MSDN Webcast相關課程整理) 由俄羅斯套娃講起。娃娃裡又包含另一個娃娃,最後那個不包含任何娃娃。 組合模式,採用樹型結構來實現普遍存在的對象容器,將本原一對多的複雜的關係,轉換成一對一的簡單關係,從而可以一致的處理一批對象,使得客戶程式不需要關心對象內容的具體實現。 將客戶程式與對象內部實現解耦,是組合模式的核心思想。解耦後,客戶程式只能對象上層的介面發生關係。 一種不好的設計方案: 把一對多的關係暴露給外界,客戶程式即要處理一對一的關係,又要處理一對多的關係。
Time of Update: 2018-12-07
需求:筆記本經常要在不同的地點串連網路,而各地的網路IP配置各不相同,這就導致不時的更改網卡的IP地址設定。Windows上更改IP設定很不方便,於是希望能夠開發一款能夠適用於不同網路,不同網卡的快速IP地址切換程式。分析:關鍵在於如何?對網路介面卡的配置。其實,MS為我們提供了System.Management
Time of Update: 2018-12-07
(根據MSDN Webcast相關課程整理) 假設情境:遊戲中的坦克不僅具有類型的不同,可能同一種坦克也會有不同,如我們可能會希望為某種類型的坦克,如T50,增加(擴充)一種或多種新功能。如果增加紅外夜視功能,水陸兩棲功能或衛星定位功能等等。通常我們可能會採用繼承的方法,擴充出新的子類型(如T50紅外版新類型)來實現新功能的擴充。顯然,這樣做有一個明顯的弊端:同時具有以上特徵的或部分功能的坦克,這樣就會產生N多種新的組合,子類的數目呈指數級膨脹。從而過多的使用了繼承來實現子類的特性。
Time of Update: 2018-12-07
(根據MSDN Webcast相關課程整理)耦合關係直接決定軟體面對變化時的行為。 緊耦合時,當一個模組變化時,相關模組都要隨之更改;依賴關係複雜 松耦合時,模組更容易被替換或更改,而其他相關模組可以保持不變。依賴關係簡單(小圓點表示介面) 不要局限於某種設計模式採用的固定方法,只要能有效解決這種模式要解決的問題,那這種方法就屬於這種設計模式。
Time of Update: 2018-12-07
(根據MSDN WebCast相關課程整理)對象狀態變化無端,如何回溯或恢複這些對象在某個點的狀態呢? GoF:在不破壞對象封裝性的前提下,捕獲一個對象的內部狀態,並在該對象外儲存這個狀態,這樣以後就可以將這個對象恢複到之前的狀態。 將對象的狀態儲存到了外部的Memento對象中,而在原發器對象內容提供儲存狀態和恢複狀態的操作。而備忘錄對象則只負責儲存對象的狀態,不支援原發器對象的所有操作。 也可以使用複製對象或序列化來儲存對象的狀態,我們可以根據實際情況和需要來選擇。 《完》
Time of Update: 2018-12-07
(根據MSDN WebCast相關課程整理)對象擁有不同的狀態,往往會行使不同的行為。 通常,我們可以採用switch…case語句來解決問題,但是,如果這種狀態變化比較頻繁,那麼,這必須導致對象與對象之間的緊耦合。當然,我們不要為使用設計模式而刻意的採用設計模式,因為一些簡 單案例下,採用模式可能反而會使設計更加複雜化。我們建議的項目初期不要刻意的應用模式,而是根據需要,找到變化點,漸進的重構出設計模式。 沒有採用設計模式時的情況:
Time of Update: 2018-12-07
由於多種原因,沒去找出處,下面僅是轉載C#從1.1到2.0再到3.0 , 許多fans為它的新特性欣喜若狂, 其實大部分只是在做一些複古運動.C#1.x 基本上抄襲了Java, 新加的特性: Foreach: 很多語言早就有了這個關鍵字. 古老的Lisp裡用的是DoList 宏. delegate: 模仿了Lisp的Funcall.C#2.0: Generics, 學過C++的人應該對模板都不陌生吧.雖然C#中做了少許改變.Anonymous methods: 模仿Lisp
Time of Update: 2018-12-07
vb(vb.net) 的with關鍵字,不僅僅是減少代碼冗餘,對結構化和範圍以及編譯器代碼最佳化有很大的關係。關於代碼冗餘,這個不用說,意義也不是很大。但對於結構化、範圍和編譯器最佳化,可以簡單的舉例進行解釋:例如程式中有兩個PictureBox 對象 如果沒有with語句,大家可能這麼寫:PictureBox pbA = new PictureBox();PictureBox.pbB = new PictureBox();pbA.Width = 3;pbB.Width =
Time of Update: 2018-12-07
1、DateTime 數字型 System.DateTime currentTime=new System.DateTime(); 1.1 取當前年月日時分秒 currentTime=System.DateTime.Now; 1.2 取當前年 int 年=currentTime.Year; 1.3 取當前月 int 月=currentTime.Month; 1.4 取當前日 int 日=currentTime.Day; 1.5 取當前時 int 時=currentTime.Hour; 1.6
Time of Update: 2018-12-07
以前找過一些資料,然後寫了一篇c#(.net)對dbf(arcgis shp屬性工作表)的操作 url:
Time of Update: 2018-12-07
最近進行中專案服務的移植工作,即將JAVA服務的程式移植到DotNet平台中。在JAVA程式中,有個HTTP請求資料頭中,包含一個BASE64編碼的字串,例如:eJyVjMENgDAMA1fpBMjnIkp3ZzZEpAa1PLmXY10sDdqBqr54Ww5AthG7zxJYa0MYr9p7bPFnK/uqjCj06y7JfHwAX3AhhA==現在需要將這個字串轉化成原始字串,原始字串包含許多重要的資訊。我們來看下JAVA是如何?這個程式的:Code highlighting
Time of Update: 2018-12-07
url: http://www.cnblogs.com/zhxhdean/archive/2012/02/20/2359605.html題記StreamReader,StreamWriter,StringReader,StringWriter每次看到這幾個詞的時候,就會混淆(理解不夠深刻),在使用過程中也經常犯渾,為了能更好的理解,寫下此文章。本文概念首先,從字面可以看出,StreamReader,StringReader是用來讀操作,StreamWriter,StringWriter是用來寫操