[C#]Effective C# Item 6: Distinguish Between Value Types and Reference Types
在C++中,所有類型都被定義為值類型,但可以自行選擇建立他們的參考形式;在JAVA中,所有自定義的類別都為參考類型。而在C#中,我們必須在設計類型的時候決定類型的型態。且必須清楚了解這個決定的後果,因為後期的更改會導致許多程式碼在不經意間出現錯誤。 ...
在C++中,所有類型都被定義為值類型,但可以自行選擇建立他們的參考形式;在JAVA中,所有自定義的類別都為參考類型。而在C#中,我們必須在設計類型的時候決定類型的型態。且必須清楚了解這個決定的後果,因為後期的更改會導致許多程式碼在不經意間出現錯誤。 ...
Introduction 相信大多數的C#使用者,尤其是碰過C語言的開發者,多多少少應該都有用過#if/#endif條件編譯。#if條件編譯通常是用來讓同一份代碼產生不同的程式,最常見的就是拿來設定Debug版與Release版的不同。 ...
Introduction DebuggerDisplayAttribute可為自己開發的類別,及其所包含的欄位與屬性,加上自訂的除錯監看訊息。 ...
看到論壇上有人問到如何處理這樣的問題。看了一下前輩的回應後才發現,原來這樣的問題是由於Windows.h檔案內,已定義了GetCurrentDirectory這個巨集所導致。該巨集會在編譯時把GetCurrentDirectory給改為GetCurrentDirectoryA或是GetCurrentDirectoryW。 ...
Introduction 這篇簡單記錄一下,如何透過GetSystemPowerStatus API,來查看目前電源的使用狀態。 ...
對C#而言,在做型別轉換時,撇開一些型別有提供Parse可供轉型外,通常我們有兩種選擇:一種是利用as運算子、一種則是強制轉型。作型別轉換時,應盡量採用as運算子來做轉型的動作,因為它比強制轉型安全,也具有較好的效能。 ...
Introduction 這篇簡單記錄一下,如何透過SystemInformation類別的PowerStatus屬性,來查看目前電源的使用狀態。 ...
Introduction Balsamiq Mockups是一套可以輔助我們做介面雛型設計的軟體。內建許多控制項元件外觀,透過簡單的拖曳、設定,介面雛型就這樣輕鬆的呈現在您眼前。Balsamiq Mockups工具提供了我們簡單好用的介面雛型設計環境,讓我們能省下許多介面雛型設計的時間。 ...
分享一下沒啥用的小程式,一個既普通又簡陋的倒數計時器。這是當初剛轉到VB.NET沒多久的練習試作品,主要是寫來數饅頭用的(還有492顆饅頭orz)。程式寫得很凌亂,但已大致修過。 ...
Natived Managed Pointer NativedClass* obj = new NativedClass(); ManagedClass^ obj = gcnew ManagedClass(); Call By Reference void Method(int& value) { } void Method(int% value) { } Enum enum { Element1, Element2 }; enum class EnumName { Element1, Element2 }; Class class ClassName { }; ref class ClassName { }; Struct struct StructName { int m_nElement1; } ref struct StructName { int m_nElement1; } Property private: bool _propertyValue; public: __declspec(property(get=GetPropertyValue,put=SetPropertyValue)) bool m_propertyValue; public: void SetPropertyValue(bool value) { _propertyValue = value; } bool GetPropertyValue() { return _propertyValue; } private: System::Boolean _propertyValue; public: property System::Boolean PropertyValue { System::Boolean get() { return _propertyValue; } void set(System::Boolean value) { _propertyValue = value; } }