[Performance][C#]Getting the Absolute Value

絕對值的取得大概有兩種方法,一種是利用.NET Framework內建的Math.Abs函式;一種則是自行判斷是否為負,若為負則把它變正。稍微比較了一下兩者的速度差異,記錄如下。 ...

January 7, 2010 · Larry Nung

[C#]Give Different Random Objects Different Seeds

.NET Framework中,Random類別的建構函式有兩個。一個是不需帶參數的建構函式,使用其建構函式會使用時間相依預設種子值來初始化 Random 類別的新執行個體。其亂數種子是依系統時鐘衍生而來,解析度有限。若在極短的時間內頻繁叫用,會使得Random物件的亂數種子皆相同,因此得到完全相同的亂數組。另一個則是帶有一個參數的建構函式,可讓使用者自行帶入亂數種子。 ...

January 4, 2010 · Larry Nung

[Performance][C#]String.Empty V.S ldquo;rdquo;

在程式的寫作過程中,我們經常會需要指派空字串。但在.NET的程式語言中,空字串的指派除了指派"",我們也可以指派String.Empty。相信有人對於兩者的差異不甚了解,或是了解卻未實際比較。這邊隨手記錄一下自己做的整理與比較。 ...

December 22, 2009 · Larry Nung

[Performance][C#]Check Whether Multiple Strings Are Numeric at Once

一般來說,在C#中若我們想要判斷字串是否為數值形式。多半我們會利用TryParse、正規表示式這兩種方式來做處理。相關的文章在網路上已經很多了,像是TryParse的方法就可以參閱HOW TO:判斷字串是否表示數值 (C# 程式設計手冊)這篇MSDN文章。 ...

December 20, 2009 · Larry Nung

[C#]Effective C# Item 10: Understand the Pitfalls of GetHashCode()

GetHashCode對於參考類型來說,可以正常運作,但其效率很低。而對於值類型來說,其實現通常是不正確的。 GetHashCode若要重新定義,我們必須要遵循下列原則: ...

December 16, 2009 · Larry Nung

[C#]Convert Arabic Numerals to Chinese Numerals

看到Rico的[C#][WinForm]如何將數字轉為國字又手癢了一下,也試著寫了一段程式,隨手記錄一下。 ...

November 3, 2009 · Larry Nung

[C#]Remove Menu Items from a Form's System Menu via API

Introduction 看到了rico寫的[C#][WinForm]如何關閉表單"X"這篇文章,覺得還滿好玩的。又是一個沒玩過的寫法。在處理上也不難,只要透過GetSystemMenu與RemoveMenu這兩個簡單的API,就可以達到關閉視窗的關閉按鈕的效果了。這邊隨手記錄一下。 ...

October 26, 2009 · Larry Nung

[C#]Effective C# Item 11: Prefer foreach Loops

C#中的foreach迴圈並不僅僅是do…while或是for迴圈的變形。它會與.NET框架中的集合接口做緊密的結合,在編譯時為我們最佳化程式碼。除此之外foreach使用上也具備較高的相容性。 ...

October 22, 2009 · Larry Nung

[C#]Effective C# Item 9: Understand the Relationships Among the Equality Methods

C#提供了四種不同的函式來判斷兩個物件是否相等: ...

October 21, 2009 · Larry Nung

[C#]Effective C# Item 8: Ensure That 0 Is a Valid State for Value Types

.NET程式在物件初始時,變數初始器會將成員變數做初始化的動作。對於值類型的成員變數來說,會被初始為0值。因此我們應將0視為值類型的默認值。 ...

October 16, 2009 · Larry Nung