[C#]Effective C# Item 7: Make Value Types Immutable and Atomic Where Possible
Introduction 當程式決定使用值類型來開發時,請優先考慮將值類型實現為具備常量性與原子性的類型。因為具有常量性的類型可讓程式較為容易編寫與維護,也較容易構建更複雜的結構。 ...
Introduction 當程式決定使用值類型來開發時,請優先考慮將值類型實現為具備常量性與原子性的類型。因為具有常量性的類型可讓程式較為容易編寫與維護,也較容易構建更複雜的結構。 ...
在C++中,所有類型都被定義為值類型,但可以自行選擇建立他們的參考形式;在JAVA中,所有自定義的類別都為參考類型。而在C#中,我們必須在設計類型的時候決定類型的型態。且必須清楚了解這個決定的後果,因為後期的更改會導致許多程式碼在不經意間出現錯誤。 ...
Introduction 相信大多數的C#使用者,尤其是碰過C語言的開發者,多多少少應該都有用過#if/#endif條件編譯。#if條件編譯通常是用來讓同一份代碼產生不同的程式,最常見的就是拿來設定Debug版與Release版的不同。 ...
Introduction DebuggerDisplayAttribute可為自己開發的類別,及其所包含的欄位與屬性,加上自訂的除錯監看訊息。 ...
Introduction 這篇簡單記錄一下,如何透過GetSystemPowerStatus API,來查看目前電源的使用狀態。 ...
對C#而言,在做型別轉換時,撇開一些型別有提供Parse可供轉型外,通常我們有兩種選擇:一種是利用as運算子、一種則是強制轉型。作型別轉換時,應盡量採用as運算子來做轉型的動作,因為它比強制轉型安全,也具有較好的效能。 ...
Introduction 這篇簡單記錄一下,如何透過SystemInformation類別的PowerStatus屬性,來查看目前電源的使用狀態。 ...
Introduction USkin是一個可以讓應用程式換膚用的函式庫。可讓應用程式套用不同的主題,讓介面有別於其它視窗。 ...
Introduction .NET 4.0後在System.Threading命名空間中新加入了Barrier類別,該類別的功能就如同字面意義一樣,可視為是一個關卡或是剪票口。透過Barrier Class我們可以管制執行緒的運作,做到執行緒同步的效果。 ...
今天突然發現VB.NET的Nothing可以拿來作運算,因此作了一點小實驗。意外發現VB.NET與C#在相同的程式邏輯下會跑出不一樣的結果。 ...