[C#]Effective C# Item 7: Make Value Types Immutable and Atomic Where Possible

Introduction 當程式決定使用值類型來開發時,請優先考慮將值類型實現為具備常量性與原子性的類型。因為具有常量性的類型可讓程式較為容易編寫與維護,也較容易構建更複雜的結構。 ...

October 15, 2009 · Larry Nung

[C#]Effective C# Item 6: Distinguish Between Value Types and Reference Types

在C++中,所有類型都被定義為值類型,但可以自行選擇建立他們的參考形式;在JAVA中,所有自定義的類別都為參考類型。而在C#中,我們必須在設計類型的時候決定類型的型態。且必須清楚了解這個決定的後果,因為後期的更改會導致許多程式碼在不經意間出現錯誤。 ...

October 14, 2009 · Larry Nung

[C#]Effective C# Item 4: Use ConditionalAttribute Instead of #if

Introduction 相信大多數的C#使用者,尤其是碰過C語言的開發者,多多少少應該都有用過#if/#endif條件編譯。#if條件編譯通常是用來讓同一份代碼產生不同的程式,最常見的就是拿來設定Debug版與Release版的不同。 ...

October 7, 2009 · Larry Nung

[C#]Customize Debugger Watch Messages with DebuggerDisplayAttribute

Introduction DebuggerDisplayAttribute可為自己開發的類別,及其所包含的欄位與屬性,加上自訂的除錯監看訊息。 ...

October 6, 2009 · Larry Nung

[C#]Check Current Power Status with the GetSystemPowerStatus API

Introduction 這篇簡單記錄一下,如何透過GetSystemPowerStatus API,來查看目前電源的使用狀態。 ...

October 2, 2009 · Larry Nung

[C#]Effective C# Item 3: Prefer the is or as Operators to Casts

對C#而言,在做型別轉換時,撇開一些型別有提供Parse可供轉型外,通常我們有兩種選擇:一種是利用as運算子、一種則是強制轉型。作型別轉換時,應盡量採用as運算子來做轉型的動作,因為它比強制轉型安全,也具有較好的效能。 ...

September 30, 2009 · Larry Nung

[C#][VB.NET]Check Current Power Status with SystemInformation.PowerStatus

Introduction 這篇簡單記錄一下,如何透過SystemInformation類別的PowerStatus屬性,來查看目前電源的使用狀態。 ...

September 29, 2009 · Larry Nung

[Library][C#]USkin Window Skinning Library

Introduction USkin是一個可以讓應用程式換膚用的函式庫。可讓應用程式套用不同的主題,讓介面有別於其它視窗。 ...

August 28, 2009 · Larry Nung

[C#][VB.NET].NET 4.0 Barrier Class

Introduction .NET 4.0後在System.Threading命名空間中新加入了Barrier類別,該類別的功能就如同字面意義一樣,可視為是一個關卡或是剪票口。透過Barrier Class我們可以管制執行緒的運作,做到執行緒同步的效果。 ...

August 22, 2009 · Larry Nung

[C#][VB.NET]Numeric Operations with Nothing or Null

今天突然發現VB.NET的Nothing可以拿來作運算,因此作了一點小實驗。意外發現VB.NET與C#在相同的程式邏輯下會跑出不一樣的結果。 ...

August 13, 2009 · Larry Nung