首页 > 后端开发 > C++ > 如何在 C# 中重载方括号运算符?

如何在 C# 中重载方括号运算符?

Susan Sarandon
发布: 2025-01-07 06:37:41
原创
431 人浏览过

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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板