如何修复“成员名”不能与其封闭类型相同使用类索引器时出错

本文关键字:类型 出错 索引 成员 何修复 成员名 不能 | 更新日期: 2023-09-27 18:06:33

我有一个名为Item的类,我在我的项目中使用,并希望通过索引器函数在类内获取/设置值。

我创建了索引器函数并得到了主题错误。经过一些研究,似乎问题是索引器实际上是一个List.Item,因此我的错误。我可以将类更改为Item2并进行编译,但是这个类被大量使用,如果可能的话,我不想重命名它。不改变我的类名,这是可解析的吗?或者我只需要忘记这一点,并使用函数来获取/设置值而不是索引器?

会抛出编译时错误的代码示例:
public class Item
{
    public object this[string var_name]
    {
        get { return null; }
        set { }
    }
}

如何修复“成员名”不能与其封闭类型相同使用类索引器时出错

嗯,这是可能的,但是您需要为此做一些额外的工作。您需要添加IndexerName属性:

public class Item
{
    [System.Runtime.CompilerServices.IndexerName("ItemIndexer")]
    public object this[string var_name]
    {
        get { return null; }
        set { }
    }
}