在C#中,properties
(屬性)和fields
(字段)都是用于訪問類的內部狀態的,但它們之間存在一些重要的區別。
字段(Fields):
static
關鍵字修飾)或非靜態的。public
、private
等),這意味著它們在類的外部也是可見的(這通常是不推薦的,因為它破壞了封裝性)。屬性(Properties):
get
和set
訪問器來控制對字段的訪問。這些訪問器可以包含邏輯代碼,例如驗證、轉換或懶加載等。下面是一個簡單的示例,展示了字段和屬性的區別:
public class Person
{
// 字段
private string _name;
// 屬性
public string Name
{
get { return _name; }
set { _name = value; }
}
}
在這個示例中,_name
是一個字段,而Name
是一個屬性。通過屬性,我們可以控制對_name
字段的訪問,并在需要時添加額外的邏輯。