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

C# 索引子宣告完整指南:修飾詞、存取器與實作範例

     編輯:關於C#

索引子宣告語法結構

[attributes] [modifiers] 回傳型別 this[參數清單] {
    get { /* 讀取邏輯 */ }
    set { /* 寫入邏輯 */ }
}

可用修飾詞一覽

修飾詞說明
new遮蔽基類別同名索引子
public/protected/internal/private存取層級控制
virtual允許衍生類別 override
sealed禁止進一步 override(需配合 override)
override覆寫基類別 virtual 索引子
abstract強制衍生類別實作(類別需 abstract)

實作範例:團隊成員名單管理

using System;

class Team {
    private string[] _names = new string[8];
    public string this[int index] {
        get => _names[index];
        set => _names[index] = value;
    }
}

class Program {
    static void Main() {
        var team = new Team();
        team[0] = "Alice";
        team[1] = "Bob";
        for (int i = 0; i < 2; i++)
            Console.WriteLine(team[i]);
    }
}

索引子 vs 屬性:何時選擇?

  • 需多參數或動態計算存取 → 索引子
  • 單一邏輯屬性、語意清晰 → 屬性
  • 索引子可支援多維度(如 matrix[x, y]),屬性無法做到。

常見陷阱

  1. 忘記檢查索引邊界 → 拋出 IndexOutOfRangeException。
  2. 在 get 中執行耗時運算(如資料庫查詢),導致效能問題。
  3. 將索引子當成陣列直接序列化(需自訂邏輯)。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved