Time of Update: 2018-12-05
原文在http://lwchome.spaces.live.com/blog/cns%21791B533443007D37%21234.entry 步驟1: 建立一個新的“windows表單控制項陳列庫”項目2: 在AssemblyInfo.cs中引用System.Security命名空間,並添加一句:[assembly : AllowPartiallyTrustedCallers()] 3:
Time of Update: 2018-12-05
C#命名規範(參考) 兩種命名方式:Pascal:每個單詞首字母均大寫Camel: 第一個單詞首字母小寫,其餘單詞大寫 1.Class命名:採用Pascal方式,不加任何首碼或尾碼,在微軟給出的建議中認為這些是冗餘資訊。2.Method命名:採用Pascal方式,使用動詞或動詞短語,如Remove();或GetCharArray();等。3.參數命名:
Time of Update: 2018-12-05
這個日誌還是挺有用的,有什麼想不起來的過來翻翻挺好,以後多多記錄。C#簡單的多線程以前用過,但是現在感覺好陌生。。。今天又查了查,趕緊記錄一下。private void LayoutRoot_SizeChanged(object sender, SizeChangedEventArgs e){ //使用object傳遞參數 Thread loadmap = new Thread(new ParameterizedThreadStart(LoadMapAsync));
Time of Update: 2018-12-05
對於串口編程,熟悉的應該覺得不困難。.NET下就更容易了,廢話也沒了。開始吧。1.虛擬串口軟體由於手上沒有串口硬體,所以在網上找了一個 VSPM 虛擬串口軟體 ,據說是免費的。:http://www.skycn.com/soft/30517.html 剛開始也不知道怎麼用,摸索了一下,終於成功。安裝以後工作模式選擇應該為:VSPM運行在Server模式,支援Client模式裝置然後是使用裝置探測器簡曆虛擬串口。(如果選擇 建立預設的串口,軟體就會自動幫你建立四個虛擬串口的)之後就是新增虛擬串口
Time of Update: 2018-12-05
標準控制項1 btn Button 2 chk CheckBox 3 ckl CheckedListBox 4 cmb ComboBox 5 dtp DateTimePicker 6 lbl Label 7 llb LinkLabel 8 lst ListBox 9 lvw ListView 10 mtx MaskedTextBox 11 cdr MonthCalendar 12 icn NotifyIcon 13 nud NumeircUpDown 14 pic PictureBox 15
Time of Update: 2018-12-05
http://blog.csdn.net/lizhizhe2000/archive/2006/09/19/1249209.aspx using System;using System.Runtime.InteropServices;namespace EAE.MyServiceInstaller{ class ServiceInstaller { #region Private Variables private string _servicePath; private string _
Time of Update: 2018-12-05
今天在一個項目做匯入功能時候,應用C#裡面的Random產生的隨機數,居然隨機產生相同的編號,真鬱悶。啟動跟蹤調試的時候就不會了。後來找找MSDN還有網上的資料,現在終於明白了其中的一些原因。原因如下: Random類是一個產生偽隨機數位類,它的建構函式有兩種,一個是直接New Random(),另外一個是New
Time of Update: 2018-12-05
我們在編寫程式時,經常遇到兩個模組的功能非常相似,只是一個是處理int資料,另一個是處理string資料,或者其他自訂的資料類型,但我們沒有辦法,只能分別寫多個方法處理每個資料類型,因為方法的參數類型不同。有沒有一種辦法,在方法中傳入通用的資料類型,這樣不就可以合并代碼了嗎?泛型的出現就是專門解決這個問題的。讀完本篇文章,你會對泛型有更深的瞭解。 為什麼要使用泛型為了瞭解這個問題,我們先看下面的代碼,代碼省略了一些內容,但功能是實現一個棧,這個棧只能處理int資料類型:public class
Time of Update: 2018-12-05
String.Split 方法有6個重載函數:1) public string[] Split(params char[] separator)2) public string[] Split(char[] separator, int count)3) public string[] Split(char[] separator, StringSplitOptions options)4) public string[] Split(string[] separator,
Time of Update: 2018-12-05
#的Replace函數,有關它的參數需要注意: 如果它的參數是一個運算式,系統會先計算運算式做預先處理,再執行替換操作。 比如(GetNameByID為一個函數): String strSource="這是一個樣本"; strSource=strSource.Replace("姓名",GetNameByID(1));
Time of Update: 2018-12-05
偶然間發現一條語句, 裡面的一個操作符讓我嚇了一跳, "=>". 這是個什麼東西? 查了一下才知道這玩意兒叫Lambda Expressions. 也就是C#2.0中的匿名方法.舉例如下:public void test() { string[] list = new string[] { "abc", "12", "java" }; string[] ll = Array.FindAll(list,
Time of Update: 2018-12-05
很多時候寫windows程式都需要結合多線程,在.net中用如下得代碼來建立並啟動一個新的線程。 public void ThreadProc(); Thread thread = new Thread(new ThreadStart(ThreadProc)); thread.IsBackground =
Time of Update: 2018-12-05
恒定類型(immutable types)其實很簡單,就是一但它們被建立,它們(的值)就是固定的。如果你驗證一些準備用於建立一個對象的參數,從前面的觀點上看,
Time of Update: 2018-12-05
近來在用CSOM解析Web Part屬性,發現讀取帶namespace的XML還真是有點噁心,說白了就是懶得去深究,想啊,要是能變成類似JSON的東西就好了,想起來.net4.0就神一般存在的 dynamic對象,有可能會帶來驚喜,果不然Parse XML to dynamic object in C#Creating a dynamic object from XML using ExpandoObjectFluent XML Parsing Using C#'s Dynamic Type
Time of Update: 2018-12-05
實值型別資料還是參考型別資料?結構還是類?什麼你須要使用它們呢?這不是C++,你可以把所有類型都定義為實值型別,並為它們做一個引用。這也不是Java,所有的類型都是實值型別。你在建立每個類型執行個體時,你必須決定它們以什麼樣的形式存在。這是一個為了取得正確結果,必須在一開始就要面對的重要決定。(一但做也決定)你就必須一直面對這個決定給你帶來的後果,因為想在後面再對它進行改動,你就不得不在很多細小的地方強行添加很多代碼。當你設計一個類型時,選擇struct或者class是件簡單的小事情,但是,一但
Time of Update: 2018-12-05
在.Net世界裡,用得最多的方法之一就是System.Object.ToStrying()了。你應該為你所有的客戶寫一個“通情達理”的類(譯註:這裡是指這個類應該對方便使用)。要麼,你就迫使所用類的使用者,去使用類的屬性並添加一些合理的易讀的說明。這個以字串形式存在,關於你設計的類的說明,可以很容易的向你的使用者顯示一些關於對象的資訊到:Windows Form裡,Web Form裡,控制台輸出。這些字元說明可以用於調試。你寫的任何一種類型,都應該合理的重寫這個方法。當你設計更多的複雜的類型時,
Time of Update: 2018-12-05
對於常量,C#裡有兩個不同的版本:運行時常量和編譯時間常量。 因為他們有不同的表現行為,所以當你使用不當時,將會損傷程式效能或者出現錯誤。 兩害相權取其輕,當我們不得不選擇一個的時候,我們寧可選擇一個運行慢一點但正確的那一個,而不是運行快一點但有錯誤的那個。基於這個理由,你應該選擇運行時常量而不是編譯時間常量(譯註:這裡隱藏的說明了編譯時間常量效率更高,但可能會有錯誤)。
Time of Update: 2018-12-05
使用#if/#endif 塊可以在同樣源碼上產生不同的編譯(結果),大多數debug和release兩個版本。但它們決不是我們喜歡用的工具。由於#if/#endif很容易被濫用,使得編寫的代碼難於理解且更難於調試。程式語言設計者有責任提供更好的工具,用於產生在不同運行環境下的機器代碼。C#就提供了條件屬性(Conditional
Time of Update: 2018-12-05
原則一:儘可能的使用屬性(property),而不是資料成員(field)。Always use properties instead of accessible data
Time of Update: 2018-12-05
C#是一個強資料類型語言。好的編程實踐意味著當可以避免從一種資料類型強制轉化為另種資料類型時,我們應該盡我們的所能來避免它。但在某些時候,運行時類型檢測是不可避免的。在C#裡,大多數時候你要為調用函數的參數使用System.Object類型,因為Framwork已經為我們定義了函數的原型。你很可能要試圖把那些類型進行向下轉化為其它類型的介面或者類。你有兩個選擇:用as運算子,或者,採用舊式的C風格,強制轉換。(不管是哪一種,)你還必須對變數進行保護:你可以試著用is進行轉換,然而再用as進行轉換