Time of Update: 2018-12-05
/// 當前月有多少天 /// </summary> /// <param name="y"></param> /// <param name="m"></param> /// <returns></returns> public static int HowMonthDay(int y, int m) {
Time of Update: 2018-12-05
#region 程式集1 無參數、靜態類下的靜態方法 static void CodeAssembly_1() { //提供對 C# 代碼產生器和代碼編譯器的執行個體的訪問。 CSharpCodeProvider provider = new CSharpCodeProvider(); //表示用於調用編譯器的參數 CompilerParameters parameter = new
Time of Update: 2018-12-05
C# WinForm編程中,你是否遇到過這樣的問題,在主視窗Form1中點擊按鈕,彈出一個子視窗Form2,你希望在Form2中調用Form1的函數,改變Form1的顯示,卻發現Form1不聽話,達不到預期效果。有的人說我調試了的,那段函數確實執行了,怎麼還是沒有顯示呢?案例1:在winform中,我在點擊from1的一個按鈕,彈出from3執行一個函數,其實form3就是彈出一個自製的密碼輸入框但是呢。然後我再from3中調用 if (password == PassWord)
Time of Update: 2018-12-05
迴文:稱正讀和反讀都相同的字元序列為“迴文”,如“abba”、“abccba”、12321、123321是“迴文”,“abcde”和“ababab”則不是“迴文”。這是c語言的解法,主要是將數組元素反序輸出:#include<stdio.h>#include<string.h>int main(void){ char str[100]; int i, len; printf("please input string"); gets(str); len =
Time of Update: 2018-12-05
最近,一位在和一位同學交流的時候,他讓我看看他的代碼情況,我看了許久,逐步記錄了一些,現在慢慢總結出來,與大家分享,編寫有效C#代碼很重要,雖然我們平時寫的時候只管實現,但是在面向大型的項目或者參與國際開源項目的時候,經常會遇到有效C#問題。今天列舉幾個,供大家參考。 第一:ToString() 很好,但是就這樣?
Time of Update: 2018-12-05
如果想你寫的程式隨系統開機一起啟動的話,那麼你可以照下面這個方法來做。 RunWhenStart(false, Application.ProductName, Application.StartupPath + @\"\\MUS.exe\"); /// <summary> /// 開機啟動項 /// </summary> /// <param name=\"Started\">是否啟動</
Time of Update: 2018-12-05
已經一年多沒有做應用軟體的的事情了,更別說Web方面了,最近一直在研究系統級的開發,前段時間研究編譯工程,寫了一門簡單的程式設計語言,想把它實現為基於物件導向的Matlab語言,但是時間的限制太多了...今天上午花了1個小時,寫了Kmeans,算是回顧曾經學過的演算法,實現的方式很簡答,沒有採用means++,而是隨機,初步檢查應該是對的,詳情見附件。Kmeans演算法思想大家一定是很清楚的,否則你也不會來看此文了,下一篇我準備將Kmeans的思想運用到實際當中(例片分析)...呵呵 /File
Time of Update: 2018-12-05
今天上午花了一點時間回顧寫了一點點關於Kmeans的代碼,剛好,這會吃完飯,花了半個小時又寫了個關於Kmeans的應用,例子是對映像的灰階處理,如:這是我做的(源碼附件),這隻是利用Kmeans進行舉例,映像灰階方法很多種,大家可以看到隨著K的數量增加,圖中的區分度會增大,很顯然嘛,當k=2的時候只有兩種顏色值(顏色值的R、G、B相同),K=6表示有6個灰階值,所以K的增大,灰階效果就會越來越好。呵呵...
Time of Update: 2018-12-05
在偵錯工具的時候發一個關於關鍵字sizeof的令我感到困惑的問題看下面的例子:int a[5]所有人都明白這裡定義了一個數組,其包含了5 個int 型的資料。我們可以用a[0],a[1]等來訪問數組裡面的每一個元素。當我們定義一個數組a 時,編譯器根據指定的元素個數和元素的類型分配確定大小(元素類型大小*元素個數)的一塊記憶體,並把這塊記憶體的名字命名為a。名字a 一旦與這塊記憶體匹配就不能被改變。a[0],a[1]等為a
Time of Update: 2018-12-05
問題:一個根資料夾,底下包含多級目錄,每一級又存在多個個子檔案夾,每個檔案夾裡面又存在多個檔案。如果要刪除所有子檔案又儲存最頂級的目錄檔案夾,那採用什麼辦法處理好呢?處理方法 1、 直接刪除根資料夾,然後再建立根資料夾。void deleteAllFile(string path){ Directory.Delete(path,true); Directory.CreateDirectory(path);} 2、遍曆所有子目錄檔案夾的檔案,逐個刪除。
Time of Update: 2018-12-05
最近看了一下C#設計模式,簡單做了點筆記。在此也記錄一下,權當備忘。C#設計模式大體上講分為三類,即:建立模式,結構模式和行為模式 建立模式:單件模式、原廠模式、抽象原廠模式、產生器模式、原型模式。結構模式:適配器模式、橋接模式、組成模式、裝飾模式、面板模式、享元模式、代理模式。行為模式:中介者模式、命令模式、備忘錄模式、狀態模式、策略模式、解譯器模式、迭代器模式、觀察者模式、訪問者模式、模板方法模式。 第一類:單件模式(Singleton
Time of Update: 2018-12-05
在C#語言中進行類型轉換的操作符is和as。is和as都是強制類型轉換,但這兩者有什麼相同之處和不同之處呢?在使用is和as需要注意哪些事項?下面我們從簡單的程式碼範例去探討這個簡單的問題。註:此博文只是本人學習過程中一些簡要記錄,新手可以看一下,高手略過。is檢查一個對象是否相容於指定的類型,並返回一個Boolean值:true或者fasle。注意,is操作符永遠不會拋出異常,請看以下樣本:ClassA{.... }Object o=new Object();Boolean b1=(o is
Time of Update: 2018-12-05
static關鍵字至少有下列n個作用:(1)函數體內static變數的作用範圍為該函數體,不同於auto變數,該變數的記憶體只被分配一次,因此其值在下次調用時仍維持上次的值;(2)在模組內的static全域變數可以被模組內所用函數訪問,但不能被模組外其它函數訪問;(3)在模組內的static函數只可被這一模組內的其它函數調用,這個函數的使用範圍被限制在聲明它的模組內;(4)在類中的static成員變數屬於整個類所擁有,對類的所有對象只有一份拷貝;(5)在類中的static成員函數屬於整個類所擁有
Time of Update: 2018-12-05
在Windows平台,可以利用很多系統API,而在.net平台下用C#調用系統API是比較方便而且也是比較輕鬆的事情。我們可以利用C#調用API實現底層驅動程式驅動某一個組件(如串口通訊)和或者外設進行工作,也可以利用系統API實現圖形化GUI功能系統API一般分為:核心級(kernel32.dll),使用者級(User32.dll), 應用級(gdi32.dll)和其他一些外設驅動等.下面我們來看一個簡單例子,用系統API擷取視窗控制代碼。 代碼Code highlighting
Time of Update: 2018-12-05
一、改變表單的大小Windows表單是可以隨意改變大小的,然而對於一些要求嚴格的表單,開發人員不希望使用者隨意的改變其大小,例如,定位準確的地圖和遊戲軟體等。遇到這種情況必須對視窗的大小進行一些限制。本例設計一個限制了大小的表單,使用者雖然可以改變其大小,但是,大小的範圍是受到限制的。技術要點在此C#中實現限制大小非常方便,只要設定表單的最大和最小範圍即可。下面介紹一下相關屬性。Form.MinimumSize屬性用來擷取或設定表單可調整到的最小大小,其文法格式如下:public
Time of Update: 2018-12-05
反射的定義:審查中繼資料並收集關於它的類型資訊的能力。中繼資料(編譯以後的最基本資料單元)就是一大堆的表,當編譯器集或者模組時,編譯器會建立一個類定義表,一個欄位定義表,和一個方法定義表等。反射的作用:1、可以使用反射動態地建立類型的執行個體,將類型綁定到現有對象,或從現有對象中擷取類型2、應用程式需要在運行時從某個特定的程式集中載入一個特定的類型,以便實現某個任務時可以用到反射。3、反射主要應用與類庫,這些類庫需要知道一個類型的定義,以便提供更多的功能。應用要點:1、現實應用程式中很少有應用
Time of Update: 2018-12-05
網路判斷網路連接有多種辦法,通過C#程式也可以判斷與遠程主機的串連狀態。具體實現方法public string NetStatus() { ManagementObjectCollection objects; string status = ""; ManagementObjectSearcher searcher =
Time of Update: 2018-12-05
使用者在安裝軟體時,將光碟片放入光碟機內,光碟片會自動運行,進行安裝操作,該功能是如何?的呢?本例介紹如何製作“自動安裝的光碟片程式”。其實,實現光碟片的自動運行非常簡單,當使用者開啟自動啟動並執行光碟片時,會發現光碟片中有幾個特殊的檔案,分別為“autorun.exe”、“autorun.ico”和“autorun.inf”,其中“autorun.exe”是光碟片自動播放時執行的可執行檔,“autorun.ico”是光碟片的表徵圖,“autorun.inf”是一個INI檔案。只要光碟片中包含這
Time of Update: 2018-12-05
之前也做過這樣的單例處理 但是不能啟用程式並顯示在最前端 今天看了Charles Chen 的C#程式只允許運行一個執行個體的解決方案 中文章的方案 實現了單例運行並啟用序視窗 方法和Charles Chen的一樣 只是做了些細節的最佳化。 public class SoftHelper { ///<summary> /// 該函數設定由不同線程產生的視窗的顯示狀態 /// </summary> /// &
Time of Update: 2018-12-05
//冒泡程式,就是使兩兩相鄰的兩個數相比較,把小的那一個放到下面,一直迴圈到最後,最後的結果:不管其他的數,最後一個肯定最小的,然後在第二次迴圈,這次迴圈可以比上次少一次,應為最後一個已經是最小的了,這一次迴圈完之後,最後一個也是除去第一次那個數中是最小的,一直迴圈,直到最後一次,那麼從後向前就是從小到大的排序了;舉一反三:由此可知 反著來就能從大到小排序了! int[] n = new[] { 3, 8, 6, 7, 8,