首頁 >後端開發 >C++ >如何在 C# 中重載方括號運算子?

如何在 C# 中重載方括號運算子?

Susan Sarandon
Susan Sarandon原創
2025-01-07 06:37:41432瀏覽

How Can I Overload the Square-Bracket Operator in C#?

在 C 中重載方括號運算子

在 C# 中,方括號運算子支援從類似字典的物件進行陣列存取和鍵值擷取。但是,這些類別本身並不支援重載方括號運算子。此功能的文件列在 C# 文件中的「Item」屬性下。

實作索引器

要在自己的類別中重載方括號運算符,您可以宣告一個索引器財產。索引器屬性的語法為:

public type this[arglist] { get; set; }

其中:

  • type 是索引器傳回的值的型別。
  • arglist 是逗號-分隔的參數列表,指定要檢索或設定的元素的索引。

For例如,要重載二維數組的方括號運算符,您可以如下聲明索引器屬性:

public object this[int x, int y]
{
    get { return array[x, y]; }
    set { array[x, y] = value; }
}

限制和例外

需要注意的是,索引器當您提供無效座標時,DataGridView 類別中的內容不會引發異常。但是,可以透過在您自己的索引器屬性實作中明確處理異常來覆寫此行為。

例如,如果提供的座標無效,要拋出 ArgumentOutOfRangeException,您可以如下實作索引器屬性:

public object this[int x, int y]
{
    get
    {
        if (x < 0 || x >= width)
        {
            throw new ArgumentOutOfRangeException("x");
        }
        if (y < 0 || y >= height)
        {
            throw new ArgumentOutOfRangeException("y");
        }

        return array[x, y];
    }

    set
    {
        if (x < 0 || x >= width)
        {
            throw new ArgumentOutOfRangeException("x");
        }
        if (y < 0 || y >= height)
        {
            throw new ArgumentOutOfRangeException("y");
        }

        array[x, y] = value;
    }
}

以上是如何在 C# 中重載方括號運算子?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn