Time of Update: 2018-12-05
在討論可空類型前,先回顧一下.NET 對於類型的定義: ".NET 中類型分為實值型別和參考型別,實值型別不可為空,參考型別可為空白"; 在這樣的前提下,所有實值型別都賦予了一個初始值例如:int i;(初始為0); 由於資料庫中出現的對應的實值型別可為空白,這樣就出現了兩者不能對應的問題。 所有在C# 2.0中引入了可為空白的實值型別,強調一點可空類型對於是實值型別而言。 實現方法如下: int i = 3;//一個實值型別 int? k = 3;//一個可為空白的實值型別(簡稱可空類型)
Time of Update: 2018-12-05
靜態變數和靜態方法 靜態(static)變數 靜態變數(類變數)是一種全域變數,它可以在各個對象執行個體間共用。class ABCD{ char data; static int share_data;}class StaticDemo{ ABCD a,b,c,d;}上述4個對象a,b,c,d共同擁有靜態變數share_data.static變數的生存期不依賴於對象,其他類可以不通過執行個體化訪問他們:public class StaticVar{ public
Time of Update: 2018-12-05
/// <summary>/// 轉換15位社會安全號碼碼為18位/// </summary>/// <param name="oldIDCard">15位的身份證</param>/// <returns>返回18位的身份證</returns>private string IDCard15To18(string oldIDCard){ int iS = 0; //加權因子常數 int[] iW =
Time of Update: 2018-12-05
需要調用以下WINAPI[DllImport("Kernel32.dll",EntryPoint="CreateFileMapping", SetLastError=true,CharSet=CharSet.Unicode)]internal static extern IntPtr CreateFileMapping(uint hFile, SecurityAttributes lpAttributes, uint flProtect, uint dwMaximumSizeHigh,
Time of Update: 2018-12-05
C#中Math.Round()實現中國式四捨五入 C#中的Math.Round()並不是使用的"四捨五入"法。其實在VB、VBScript、C#、J#、T-SQL中Round函數都是採用Banker's rounding(銀行家演算法),即:四捨六入五取偶。事實上這也是IEEE的規範,因此所有符合IEEE標準的語言都應該採用這樣的演算法。 .NET
Time of Update: 2018-12-05
this.openFileDialog.ShowDialog();this.txtFileName.Text = this.openFileDialog.FileName; ProcessStartInfo info = new ProcessStartInfo(); info.FileName = txtFileName.Text;//外部程式名稱//設定外部程式工作目錄 info.WorkingDirectory =
Time of Update: 2018-12-05
Linux下獲得系統時間的C語言的實現方法 #include<time.h> //C語言的標頭檔 #include<stdio.h> //C語言的I/Ovoid main(){time_t now; //執行個體化time_t結構struct tm *timenow; //執行個體化tm結構指標time(&now);//time函數讀取現在的時間(國際標準時間非北京時間),然後傳值給nowtimenow = localtime(&now)
Time of Update: 2018-12-05
volatile關鍵字是一種類型修飾符,用它聲明的類型變數表示可以被某些編譯器未知的因素更改,比如作業系統、硬體或者其它線程等。遇到這個關鍵字聲明的變數,編譯器對訪問該變數的代碼就不再進行最佳化,從而可以提供對特殊地址的穩定訪問。使用該關鍵字的例子如下:int volatile nVint;當要求使用volatile 聲明的變數的值的時候,系統總是重新從它所在的記憶體讀取資料,即使它前面的指令剛剛從該處讀取過資料。而且讀取的資料立刻被儲存。例如:volatile int i=10;int a =
Time of Update: 2018-12-05
1、什麼是虛函數和多態
Time of Update: 2018-12-05
7、記憶體耗盡怎麼辦?如果在申請動態記憶體時找不到足夠大的記憶體塊,malloc和new將返回NULL指標,宣告記憶體申請失敗。通常有三種方式處理“記憶體耗盡”問題。 (1)判斷指標是否為NULL,如果是則馬上用return語句終止本函數。例如:void Func(void){ A *a = new A; if(a == NULL) { return; } …}(2)判斷指標是否為NULL,如果是則馬上用exit(1)終止整個程式的運行。例如:void Func(void){ A *a =
Time of Update: 2018-12-05
解決的問題:我們在裝飾新家的時候買了幾幅抽象畫,買回來之後發現有些加上色彩豔麗的邊框更適合我們,而有的加上玻璃罩之後更能符合我們的使用。那我們來怎麼解決這個問題呢?他需要動態給別的對象增加額外的職責,這就是裝飾者模式的目的。我們可以通過繼承的方式來給原對象增加新功能,但是裝飾者模式採用組合的方式比產生子類更加靈活。類圖及範例實現:在裝飾模式中的各個角色有:抽象構件(Component)角色:給出一個抽象介面,以規範準備接收附加責任的對象。具體構件(Concrete Component)角色:定義
Time of Update: 2018-12-05
C#與flash as2.0互動 C#主要代碼:首先要添加COM組件-Shockwave Flash Object //接收flash發送過來的資訊 private void axShockwaveFlash1_FlashCall(object sender, AxShockwaveFlashObjects._IShockwaveFlashEvents_FlashCallEvent e) { XmlDocument
Time of Update: 2018-12-05
C#基礎-從clr底層說起(一) 引言 最近一直在讀《Clr via C#》(Jeffrey Richter)這本書,確實寫的挺不錯的,才看到不到兩百頁,實在汗顏。看的還沒忘的多,為了改變些什麼,我就寫下這個系列,不知道自己能不能寫好,所以先拋磚引玉下,我打算從底層開始寫起,包括線程堆棧和託管堆棧的記憶體配置、多線程等算是比較進階的技術吧,以前也寫過幾篇,現在看來太低級了,大家可以無視之。 昨天從鄭州殺向上海,憑的就是一腔的熱情還有不服輸的信念。首先要感謝大石頭的大力支援和打擊,
Time of Update: 2018-12-05
//設定滑鼠圖示 Bitmap a = (Bitmap)Bitmap.FromFile("1.png"); SetCursor(a, new Point(16, 36)); //new Point() 定義滑鼠的可用點位置。 //設定滑鼠函數 public void SetCursor(Bitmap cursor, Point hotPoint) { int hotX =
Time of Update: 2018-12-05
C#發送郵件的功能在網上找了很多也有利用socket的 ,試了一下不行的原因是smtp伺服器的問題。在這裡我用了mailmessage和搜狐的stmp.sohu.com。源碼如下: protected void Button1_Click(object sender, EventArgs e) { string from = ******@sohu.com; string fromer = "寄件者"; string to = "*****
Time of Update: 2018-12-05
C#網路編程之服務客戶模式在控制台下的互動 今天我們來看一下在C#中怎樣實現服務端與用戶端進行互動,具體怎麼互動通過一個小程式來體現。要實現這麼一個簡單的小程式,其中涉及到的技術點雖然不多,但理解起來確實有點困難,其中設計到委託、多線程、TCP/IP網路編程等幾個技術點,先對這幾個技術點簡單介紹下。鑒於本人技術有限,難登大雅之堂,個人表述難免有所錯誤,敬請見諒。
Time of Update: 2018-12-05
第一種方法:就是調用系統API函數更改系統時間 [StructLayout(LayoutKind.Sequential)] public struct SystemTime { public ushort wYear; public ushort wMonth; public ushort wDayOfWeek; public ushort wDay; public ushort wHour;
Time of Update: 2018-12-05
利用委託輕鬆實現,子表單向父表單傳值。子表單實現代碼: //聲明委託 public delegate void MyDelMsg(string msg); //定義一個委託變數 public MyDelMsg myDelMsg; private void button1_Click(object sender, EventArgs e) { if (myDelMsg!=null)
Time of Update: 2018-12-05
c#要求所有的運算子多載都聲明為public 和static,這表示他們與他們的類或結構相關聯,而不與執行個體相關聯。操作符的重載使用operator關鍵字,C#不允許重載=操作符。下面是一個重載+操作符的列子, 代碼Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--> static void Main(string[] args)
Time of Update: 2018-12-05
/// <summary> /// 遞迴選中所有的自節點 /// </summary> /// <param name="nodeThis">TreeNode</param> private void checkAllChildNode(TreeNode nodeThis) { foreach (TreeNode childNode in n