首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> 關於.NET

.NET 程式設計師常見盲點 (二):Property 與 Attribute 的「屬性」身分辨析

     編輯:關於.NET

中文技術書常將 Property 與 Attribute 同譯為「屬性」,導致許多開發者混淆。兩者源自不同領域,用途截然不同。

Attribute:中繼資料標記

  • 屬於 OOA/OOD 概念,對應 .NET 的 System.Attribute 衍生類別。
  • 用於「描述」程式碼元素(類別、方法、參數等),影響執行期行為或提供工具資訊。
  • 常見預定義 Attribute:
Attribute適用目標說明
AttributeUsageClass指定自訂 Attribute 的合法用法
Obsolete除 Assembly/Module/Parameter/Return 外所有標記過時成員
SerializableClass/Struct/Enum/Delegate允許序列化
DllImportMethod指定非託管 DLL 位置
ConditionalMethod條件式編譯
ThreadStaticStatic Field執行緒區域儲存

自訂 Attribute 範例:[DllImport("User32.dll")]。

Property:封裝欄位存取

  • 屬於程式語言語法層面,面向物件封裝的基本單位。
  • 以 get/set 存取子包裝私有欄位,提供唯讀/可寫/邏輯驗證等彈性。
  • 範例:
private int _hour;
public int Hour
{
    get { return _hour; }
    set { _hour = value; }
}

核心差異對照

面向AttributeProperty
本質中繼資料 (Metadata)封裝的資料存取介面
繼承體系衍生自 System.Attribute語言關鍵字,無繼承關係
執行期角色被反射讀取,影響框架行為直接參與業務邏輯運算
自訂控制項中設計工具屬性格欄位程式碼中定義的成員

記憶口訣

Attribute = 描述 (標籤),貼在程式碼上給工具/框架看。
Property = 屬性 (封裝),寫在類別裡給程式邏輯用。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved