Heim >Backend-Entwicklung >C++ >Wie überlade ich den Operator für eckige Klammern in C#?

Wie überlade ich den Operator für eckige Klammern in C#?

Barbara Streisand
Barbara StreisandOriginal
2025-01-07 07:12:43235Durchsuche

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

Überladen des eckigen Klammeroperators in C#

In vielen .NET-Klassen, wie z. B. DataGridView, können Sie über das Quadrat auf Elemente zugreifen -Klammeroperator:

DataGridView dgv = ...;
DataGridViewCell cell = dgv[1, 5];

Diese Dokumentation bietet Einblicke in die Implementierung und das Verhalten davon Operator.

Relevante Dokumentation

Die Dokumentation für den Operator in eckigen Klammern finden Sie unter der Item-Eigenschaft.

So überladen Sie

Um den Operator in eckigen Klammern zu überladen, definieren Sie eine Eigenschaft als folgt:

public object this[int x, int y] { get {...}; set {...} };

Ausnahmebehandlung

Der Indexer in DataGridView löst keine Ausnahme aus, wenn ungültige Koordinaten angegeben werden. Es ist jedoch wichtig zu beachten, dass dies möglicherweise nicht bei allen Indexern der Fall ist.

Beispielimplementierung

Das folgende Beispiel zeigt die Überladung des Operators für eckige Klammern in a benutzerdefinierte Klasse:

public class MyClass
{
    private List<object> _innerList;

    public MyClass()
    {
        _innerList = new List<object>();
    }

    public object this[int i]
    {
        get { return _innerList[i]; }
        set { _innerList[i] = value; }
    }
}

Das obige ist der detaillierte Inhalt vonWie überlade ich den Operator für eckige Klammern in C#?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn