[.NET C#] REF關鍵字與ValueType、ReferenceType

  • 690
  • 0
  • C#
  • 2016-01-27

C#在撰寫Method時,我們可以在傳入參數上加上REF關鍵字,過去我對這個REF關鍵字一直不是完全瞭解,總是跟Object / Reference Type扯在一起; 加上MSDN的解釋上也滿混沌的:” ref 關鍵字會導致引數由參考加以傳遞,而非透過值。 由參考傳遞的效果,是呼叫方法中參數的任何變更,都會反映在呼叫方法中…”
這個定義的說法,似乎太過於著重於”果”,而非描繪其真實現象

...繼續閱讀 »

[.NET C#] Readonly與Const

  • 711
  • 0
  • C#
  • 2016-01-27

會想這篇的原因是因為前兩天在開發上,寫了一個具有DateTime參數的function,後來想將其改為optional所以設了 = DateTime.MinValue;結果就得到了一個"default parameter value for xxx must be a compile-time constant"才開始認真查了一下今天這個主題的內容,何謂compile-time constant?為何DateTime.minValue明明看起來就像常數,確不能當作參數的預設值?

...繼續閱讀 »

[.NET C#] 自動實作屬性

  • 1227
  • 0
  • C#
  • 2015-06-20

C#在3.0開始增加了這種語法糖的寫法,在寫作上讓code更為輕量化,由其在POCO Model屬性多的時後,更顯得這種語法的簡潔威力。

假設我們今天要建立一個Employee類別,並且具有EmpoyeeID這個int Property,照未省略前的寫法

...繼續閱讀 »

[.NET C#] Partial Classes 部份類別

C# 2.0 開始支援了部份類別 (Partial Class) 的機制,即便在同一個Class底下也可以分別寫在不同的source code file裡,而在編輯時期在由編輯器合併為單一Class。這樣的設計讓開發上擁有更多的彈性,而在一個.NET專案中也到處可以看到Partial Class的影子 (WebForm的 aspx.cs, aspx.designer.cs即是以partial 方式撰寫)。

...繼續閱讀 »

[.NET C#] 位元運算用的列舉型別 FlagsAttribute

  • 1057
  • 0
  • C#
  • 2015-06-16

.NET Framework除了一般開發者很常使用的列舉型別外(Enumeration), 原來也有支援複合列舉的使用,在MSDN中文翻譯為旗標(Flag), 其實早在.NET 1.1就開始支援了(汗,過去專案中還真的沒有使用過), 這種標示為旗標的列舉,最大的差別就是該型別被認定會直接拿來進行位元運算。

...繼續閱讀 »