解讀.Net技術(shù)開發(fā)中兩個“屬性”引起的歧異_.Net教程
推薦:解讀.net垃圾回收和CLR 4.0對垃圾回收所做的改進(jìn)之一A survey of garbage collection and the changes CLR 4.0 brings in - series of what is new in CLR 4.0 導(dǎo)言Introduction 垃圾回收(Garbage Collection)在.net中是一個很重要的機(jī)制. 本文將要談到CLR4.0對垃圾回收做了哪些改進(jìn). 為了更好地理解這些改進(jìn),
對于property和attribute這兩個名詞都叫“屬性”的問題,來源于國內(nèi)it書籍翻譯界的疏忽。
其實它們來源于兩個不同的領(lǐng)域,attribute屬于OOA/OOD的概念,而property屬于編程語言中的概念。下面我們來說明它們的異同。
Attribute
Attributes是Microsoft .NET Framework文件的元數(shù)據(jù),可以用來向運行時描述你的代碼,或者在程序運行的時候影響應(yīng)用程序的行為。
Property
屬性是面向?qū)ο缶幊痰幕靖拍睿峁┝藢λ接凶侄蔚脑L問封裝,在C#中以get和set訪問器方法實現(xiàn)對可讀可寫屬性的操作,提供了安全和靈活的數(shù)據(jù)訪問封裝。關(guān)于屬性的概念,不是本文的重點,而且相信大部分的技術(shù)人員應(yīng)該對屬性有清晰的概念。以下是簡單的屬性
區(qū)別
可以說兩者沒有可比性,只不過我們國家的語言特點才引起的歧異,其實只要記住Attributes是派生于System,Attributes類之下,它的主要作用是描述,比如在某一個自定義控件中的“屬性”就是指Attribute,
如
[DllImport("User32.dll")]
Attribute也有很多系統(tǒng)的“默認(rèn)”屬性,見下表
預(yù)定義的屬性 有效目標(biāo) 說明
AttributeUsage Class 指定另一個屬性類的有效使用方式
CLSCompliant 全部 指出程序元素是否與CLS兼容
Conditional Method 指出如果沒有定義相關(guān)聯(lián)的字符串,編譯器就可以忽略對這個方法的任何調(diào)用
DllImport Method 指定包含外部方法的實現(xiàn)的DLL位置
STAThread Method(Main) 指出程序的默認(rèn)線程模型為STA
MTAThread Method(Main) 指出程序的默認(rèn)模型為多線程(MTA)
Obsolete 除了Assembly、Module、Parameter和Return 將一個元素標(biāo)示為不可用,通知用戶此元素將被從未來的產(chǎn)品
ParamArray Parameter 允許單個參數(shù)被隱式地當(dāng)作params(數(shù)組)參數(shù)對待
Serializable Class、Struct、enum、delegate 指定這種類型的所有公共和私有字段可以被串行化
NonSerialized Field 應(yīng)用于被標(biāo)示為可串行化的類的字段,指出這些字段將不可被串行化
StructLayout Class、struct 指定類或結(jié)構(gòu)的數(shù)據(jù)布局的性質(zhì),比如Auto、Explicit或sequential
ThreadStatic Field(靜態(tài)) 實現(xiàn)線程局部存儲(TLS)。不能跨多個線程共享給定的靜態(tài)字段,每個線程擁有這個靜態(tài)字段的副本
而Property是指編程過程中的字段,也即類的成員。
如:
private int hour; //定義私有變量表示"小時",外部是訪問不到的.}
public int Hour// 定義Hour程序接口
{
set { hour=value; }
get { return hour; }
}
分享:解讀.net垃圾回收和CLR 4.0對垃圾回收所做的改進(jìn)之二A survey of garbage collection and the changes CLR 4.0 brings in Part 2 - series of what is new in CLR 4.0 接前篇Continue the previous post .net垃圾回收和CLR 4.0對垃圾回收所做的改進(jìn)之一 CLR4.0所帶來的變化仍然沒有在這篇,請看下篇。 內(nèi)存釋放
- asp.net如何得到GRIDVIEW中某行某列值的方法
- .net SMTP發(fā)送Email實例(可帶附件)
- js實現(xiàn)廣告漂浮效果的小例子
- asp.net Repeater 數(shù)據(jù)綁定的具體實現(xiàn)
- Asp.Net 無刷新文件上傳并顯示進(jìn)度條的實現(xiàn)方法及思路
- Asp.net獲取客戶端IP常見代碼存在的偽造IP問題探討
- VS2010 水晶報表的使用方法
- ASP.NET中操作SQL數(shù)據(jù)庫(連接字符串的配置及獲取)
- asp.net頁面?zhèn)髦禍y試實例代碼
- DataGridView - DataGridViewCheckBoxCell的使用介紹
- asp.net中javascript的引用(直接引入和間接引入)
- 三層+存儲過程實現(xiàn)分頁示例代碼
- 相關(guān)鏈接:
- 教程說明:
.Net教程-解讀.Net技術(shù)開發(fā)中兩個“屬性”引起的歧異
。