首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> C# >> C# 入門

C# 屬性完全指南:訪問器、自動屬性、只讀、抽象屬性與封裝

     編輯:C# 入門

C# 屬性完全指南:訪問器、自動屬性、只讀、抽象屬性與封裝

屬性是類/結構/接口的命名成員,通過 get/set 訪問器控制私有字段讀寫,實現封裝。屬性不佔用存儲,訪問器執行邏輯。

標準屬性模式

private string code = "N.A";
public string Code {
    get { return code; }
    set { code = value; }
}

自動實現屬性 (C# 3.0+)

public string Name { get; set; }  // 編譯器自動生成後備字段
public int Age { get; private set; }  // 只允許內部設置

完整示例:Student 類

class Student {
    private string code, name; private int age;
    public string Code { get => code; set => code = value; }
    public string Name { get => name; set => name = value; }
    public int Age { get => age; set => age = value; }
    public override string ToString() => $"Code={Code}, Name={Name}, Age={Age}";
}
// 使用
var s = new Student { Code="001", Name="Zara", Age=9 };
s.Age++;  // 10

抽象屬性

抽象類定義契約,派生類必須實現:

public abstract class Person {
    public abstract string Name { get; set; }
    public abstract int Age { get; set; }
}
class Student : Person {
    public override string Name { get; set; }
    public override int Age { get; set; }
}

屬性 vs 字段

  • 字段:直接存儲數據,無邏輯控制
  • 屬性:封裝訪問邏輯,可驗證、計算、延遲初始化、觸發通知
  • 介面只能聲明屬性,不能聲明字段

最佳實踐:公開數據成員一律用屬性,保留未來添加邏輯的彈性。

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