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

C# 使用屬性存取私有成員

     編輯:關於C語言

三種存取私有欄位的方式比較

以 EmployeeInfo 類別的 strName 為例:

方式程式碼呼叫端
修改為 publicpublic string strName;emp.strName = "me";
公有方法public string GetName() { return strName; }
public void SetName(string n) { strName = n; }
emp.SetName("me");
屬性public string Name { get { return strName; } set { strName = value; } }emp.Name = "me";

優劣分析

指標public 欄位公有方法屬性
封裝性破壞保持保持
安全性風險安全安全
程式碼簡潔度高繁瑣高
效能最高最低次高

屬性的底層實現

屬性編譯為 get_Name/set_Name 兩個方法,MSIL 如下:

.property instance string Name() {
    .get instance string EmployeeInfo::get_Name()
    .set instance void EmployeeInfo::set_Name(string)
}
.method public hidebysig specialname instance string get_Name() cil managed { ... }
.method public hidebysig specialname instance void set_Name(string 'value') cil managed { ... }

結論

屬性兼具封裝性、安全性與語法簡潔,是 C# 存取私有成員的最佳選擇。且屬性內可包含任意複雜邏輯,等同於方法。

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