2009年5月20日 星期三

[.NET] 自訂屬性

之前在寫 .NET Web Service 的時候就覺得.......

為什麼在 method 上面加個 [WebMethod] 就可以讓 method 變成 web service 提供給外部呼叫呢?

若是要增加額外的描述,還可以使用 [WebMethod(Description = "xxxxxx")] 的方式來增加

這到底是怎麼做到的呢?

答案就是:Custom Attributes (自訂屬性)

搜尋了一下,在 MSDN 上面看到還算詳細的範例,網址如下:

MSDN >> MSDN Library >> 使用屬性擴充中繼資料 (英文版)


了解以後就可以撰寫自己的 attribute class 來用囉!

PS. 其實 attribute class 就是一般的 class 而已,只不過因為繼承了 System.Attribute 類別,因此有了 .NET Framework 所提供的自訂屬性的效果。

2009年5月5日 星期二

[.NET] C# 的新功能 - Automatic Properties & Object Initializers & Collection Initializers

今天在網路上看到這篇文章.......

才發現原來 C# 有提供這麼酷的功能

Automatic Properties 可以讓 setter 與 getter 的宣告更為簡潔便利(前提是 property 沒有做額外的判斷與處理)

Object Initializers 讓程式開發人員不需要一一指定物件的 property 來進行初始化

Collection Initializers 更是可以一次初始化 collection 中的物件

另外還有一篇文章也很值得參考:C# 3.0自動實作屬性的犀利之處 - 黑暗執行緒