在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字段的訪問,并在需要時添加額外的邏輯。