Time of Update: 2018-12-08
Windows作業系統的版本號碼一覽作業系統 PlatformID 主要版本號 副版本號碼 Windows95 1 4 0 Windows98 1 4 10 WindowsMe 1 4 90 WindowsNT3.5 2 3 0 WindowsNT4.0 2 4 0 Windows2000 2 5 0 WindowsXP 2 5 1 Windows2003 2 5 2 WindowsVista 2 6 0 Windows7 2 6 1 Windows8
Time of Update: 2018-12-08
代碼如下所示:複製代碼 代碼如下: public static Bitmap MakeGrayscale(Bitmap original) { //create a blank bitmap the same size as original Bitmap newBitmap = new Bitmap(original.Width, original.Height); //get a graphics
Time of Update: 2018-12-08
在C# winform應用程式中,用以下代碼可以進行一些記憶體使用量的最佳化複製代碼 代碼如下:using System;using System.Diagnostics;using System.Runtime.InteropServices;/// <summary>/// 包含各種記憶體管理、最佳化的方法/// </summary> public class Memory { private static readonly Version
Time of Update: 2018-12-08
映像灰階化:將彩色映像轉化成為灰階映像的過程成為映像的灰階化處理。彩色映像中的每個像素的顏色有R、G、B三個分量決定,而每個分量有255中值可取,這樣一個像素點可以有1600多萬(255*255*255)的顏色的變化範圍。而灰階映像是R、G、B三個分量相同的一種特殊的彩色映像,其一個像素點的變化範圍為255種,所以在數位影像處理種一般先將各種格式的映像轉變成灰階映像以使後續的映像的計算量變得少一些。灰階映像的描述與彩色映像一樣仍然反映了整幅映像的整體和局部的色度和亮度等級的分布和特徵。映像的灰階
Time of Update: 2018-12-08
本文和大家講一下如何使用C#來建立系統中只能有該程式的一個執行個體運行。要實現程式的互斥,通常有下面幾種方式,下面用 C# 語言來實現:方法一:使用線程互斥變數. 通過定義互斥變數來判斷是否已運行執行個體.把program.cs檔案裡的Main()函數改為如下代碼:複製代碼 代碼如下:using System;using System.Windows.Forms;using System.Runtime.InteropServices;namespace NetTools{ static
Time of Update: 2018-12-08
複製代碼 代碼如下:public string CreateWordFile() { string message = ""; try { Object Nothing = System.Reflection.Missing.Value; string name = "xiehuan.doc"; object filename
Time of Update: 2018-12-08
1.複製代碼 代碼如下: private void Form1_Load(object sender, System.EventArgs e) for(double d=0.01; d< 1; d+=0.02) { System.Threading.Thread.Sleep(1); Application.DoEvents(); this.Opacity=d; this.Refresh(); }2
Time of Update: 2018-12-08
假定建立了XmlWriter的執行個體變數xmlWriter,下文中將使用此執行個體變數寫Xml1.如何使用XmlWriter寫Xml文檔聲明複製代碼 代碼如下:// WriteStartDocument方法可以接受一個bool參數(表示standalone,是否為獨立文檔)或者不指定參數standalone保持預設值 xmlWriter.WriteStartDocument(false|true);
Time of Update: 2018-12-08
最近被.net winform中的控制項布局搞困惑了,由於控制項都是使用Dock方式的,操作起來也是比較方便,如果最大化,視窗大小調整等,都可以隨著視窗大小的變化而變化。但問題是,.net winform的dock方式是根據先添加的控制項順序進行優先順序Dock排列的,假設我想目前有三個控制項A、B、C分別以 Top、Bottom以及Fill方式填充視窗即視窗看起來應該是這樣的:---------------------A---------------------C---------------
Time of Update: 2018-12-08
在C# winform 應用程式中,對於鍵盤響應事件,經常使用到"KeyPress"、“KeyUp”、"KeyDown"事件,可以處理某個按鍵的自訂處理事件。有時想定義方向鍵的自訂處理事件時,你可以發現,雖然自訂的處理事件發生了響應,但是也可以看到,按下方向鍵時,發現表單上控制項的焦點也發生了切換。而這種結果不是我們想要的,我們不想按下方向鍵時,控制項的焦點發生切換,只想響應我們自訂的處理函數即可。下面的方法可以取消方向鍵對控制項焦點的控制:複製代碼 代碼如下:protected
Time of Update: 2018-12-08
複製代碼 代碼如下:const int SECOND = 1;const int MINUTE = 60 * SECOND;const int HOUR = 60 * MINUTE;const int DAY = 24 * HOUR;const int MONTH = 30 * DAY;if (delta < 0){ return "not yet";}if (delta < 1 * MINUTE){ return ts.Seconds == 1 ? "1秒前" :
Time of Update: 2018-12-08
checked 和 unchecked關鍵字用來限定檢查或者不檢查數學運算溢出的;如果使用了checked發生數學運算溢出時會拋出OverflowException;如果使用了unchecked則不會檢查溢出,算錯了也不會報錯。1. 一段編譯沒通過的代碼複製代碼 代碼如下:int a = int.MaxValue * 2;以上程式碼片段編譯沒有通過,在VS2010中會有一條紅色的波浪線指出這段代碼有問題:”The operation overflows at compile time in
Time of Update: 2018-12-08
1.dynamic ExpandoObject熟悉js的朋友都知道js可以這麼寫 :複製代碼 代碼如下:var t = new Object(); t.Abc = ‘something'; t.Value = 243; 現在這個js動態語言的特性,我們也可以在c#中使用了,前提是將一個變數聲明為ExpandoObject類型。如下例:複製代碼 代碼如下:static void Main(string[] args) { dynamic t = new ExpandoObject();
Time of Update: 2018-12-08
上一篇寫了一下裝箱拆箱的定義和IL分析,這一篇我們看下使用泛型和不使用泛型引發裝箱拆箱的情況1.使用非泛型集合時引發的裝箱和拆箱操作 看下面的一段代碼:複製代碼 代碼如下:var array = new ArrayList();array.Add(1);array.Add(2);foreach (int value in array){Console.WriteLine(“value is {0}”,value);}代碼聲明了一個ArrayList對象,向ArrayList中添加兩個數字1,2;
Time of Update: 2018-12-08
同步方法和非同步方法呼叫的區別同步方法調用在程式繼續執行之前需要等待同步方法執行完畢返回結果非同步方法呼叫則在被調用之後立即返回以便程式在被呼叫者法完成其任務的同時執行其它操作非同步編程概覽.NET Framework 允許您非同步呼叫任何方法。定義與您需要調用的方法具有相同簽名的委託;公用語言運行庫將自動為該委託定義具有適當簽名的 BeginInvoke 和 EndInvoke 方法。BeginInvoke
Time of Update: 2018-12-08
裝箱和拆箱是實值型別和參考型別之間相互轉換是要執行的操作。 1. 裝箱在實值型別向參考型別轉換時發生2. 拆箱在參考型別向實值型別轉換時發生光上述兩句話不難理解,但是往深處瞭解,就需要一些篇幅來解釋了。我們先看裝箱時都會發生什麼事情,下面是一行最簡單的裝箱代碼複製代碼 代碼如下:object obj = 1;這行語句將整型常量1賦給object類型的變數obj;
Time of Update: 2018-12-08
委託的Invoke方法用來進行同步調用。同步調用也可以叫阻塞調用,它將阻塞當前線程,然後執行調用,調用完畢後再繼續向下進行。同步調用的例子:複製代碼 代碼如下:using System;using System.Threading;public delegate int AddHandler(int a, int b);public class Foo { static void Main() { Console.WriteLine("**********SyncInvokeTest*****
Time of Update: 2018-12-08
1.限定字串用 @ 符號加在字串前面表示其中的逸出字元“不”被處理。 如果我們寫一個檔案的路徑,例如"D:/文字檔"路徑下的text.txt檔案,不加@符號的話寫法如下: stringfileName="D://文字檔//text.txt"; 如果使用@符號就會比較簡單: stringfileName=@"D:/文字檔/text.txt"; 2.讓字串跨行有時候一個字串寫在一行中會很長(比如SQL語句),不使用@符號,一種寫法是這樣的:複製代碼 代碼如下:string
Time of Update: 2018-12-08
Process類的作用是對系統進程進行管理,我們使用Process類中的一些方法結合Winform開發個簡單的進程管理器:在使用Process類的時候,先匯入命名空間System.Diagnostics。使用Winform畫出如上的介面,資料顯示使用的是Listview。在表單的Load事件中寫出如下代碼:複製代碼 代碼如下: private void Form1_Load(object sender, EventArgs e) {
Time of Update: 2018-12-08
在c和c++中,我們知道沒辦法起一個變數名叫int,因為這是C/C++保留的關鍵字,起這麼一個變數名沒辦法區分到底是int類型還是int變數。事實上在C#中也有這麼一條規矩,就是不能起一個變數名是保留的關鍵字。如:在C/C++中,我們是無能為力的,你必須起一個不叫int的,比如加個底線。。當然,C#中也可以這麼幹。@ 今天閱讀《C# 3.0 in a Nutshell, 3rd Edition》才知道,原來還有一種辦法就是加@符號(看了@符號的作用又多了一個):複製代碼 代碼如下:class @