>Andy , 2023/05/11
# 封裝與自動屬性
## 封裝
封裝是指將一個物件的內部狀態隱藏起來,只公開一些公共方法,透過這些方法讓外部程式可以訪問和修改物件狀態。在 C# 中,使用封裝可以使用屬性(Property)來實現。
```csharp
public class Person
{
//先定義兩個"欄位",並且不能直接存取
private string name;
private int age;
//使用
public string Name
{
get { return name; }
set { name = value; }
}
public int Age
{
get { return age; }
set { age = value; }
}
}
```
## 自動屬性
自動屬性(Auto-Implemented Properties)是指C#中定義屬性時,不用顯式地定義相應的 private field。這樣的定義方式可以減少代碼的量,提高開發效率,缺點是不能詳細的制定操作屬性的細節。
```csharp
public class Person
{
public string Name {get; set;}
public int Age {get; set;}
}
```
###### tags: `back-end`