C# 屬性封裝私有欄位,提供 get/set 存取器。慣例:屬性 PascalCase、欄位 camelCase 或底線前綴。set 隱含參數 value 型別與欄位相同。
public class Animal
{
private string name;
public string Species
{
get => name;
set => name = value;
}
}
// 使用
Animal a = new Animal();
a.Species = "Lion"; // set
string s = a.Species; // get
get → 唯讀。set → 唯寫 (罕見)。編譯器將存取器轉為 get_Species()/set_Species() 方法,確保與不支援屬性的 .NET 語言互通。
using System;
public struct CustomerStruct
{
public int ID;
public string Name;
public CustomerStruct(int id, string name) { ID=id; Name=name; }
}
class Test
{
static void Main()
{
CustomerStruct c = new CustomerStruct(); // 呼叫預設建構子
Console.WriteLine($"Before: ID={c.ID}, Name='{c.Name}'"); // 0, ""
c.ID = 100; c.Name = "Robert";
Console.WriteLine($"After: ID={c.ID}, Name='{c.Name}'"); // 100, Robert
}
}
若用 CustomerStruct c; (不 new),欄位未初始化,使用前必須賦值,否則編譯錯誤。