JetBrains Rider 2025.2 Help

将方法转换为索引器的重构

此重构可帮助您将访问集合的方法转换为索引器,并相应地更新方法的用法。 您可以将其应用于:

  • 具有返回值和一个或多个参数的方法,将其转换为具有相同参数集的索引器的 get 访问器。

  • 具有 void 返回类型和两个或更多参数的方法(其中最后一个参数应为值,其他参数表示索引),将其转换为索引器的 集合 访问器。

请参考以下示例。 如果不存在索引器,重构将创建一个索引器:

class TestBookLibrary { Book[] _books; Book GetBookAt(int index) { return _books[index]; } void Insert(int index, Book book) { _books[index] = book; } void Copy(int copy, int to) { Insert(to, GetBookAt(copy)); } }
class TestBookLibrary { Book[] _books; Book this[int index] { get { return _books[index]; } } void Insert(int index, Book book) { _books[index] = book; } void Copy(int copy, int to) { Insert(to, this[copy]); } }

如果仅存在一个访问器的索引器,且转换的方法适配,重构将尝试添加第二个访问器:

class TestBookLibrary { Book[] _books; Book this[int index] { get { return _books[index]; } } void Insert(int index, Book book) { _books[index] = book; } void Copy(int copy, int to) { Insert(to, this[copy]); } }
class TestBookLibrary { Book[] _books; Book this[int index] { get { return _books[index]; } set { _books[index] = value; } } void Copy(int copy, int to) { this[to] = this[copy]; } }

将方法转换为索引器

  1. 将光标放在编辑器中方法的声明或用法处,或在 结构窗口 窗口中选择它。

  2. 请执行以下操作之一:

    • Ctrl+Alt+Shift+T 然后选择 将方法转换为索引器

    • 在主菜单中选择 重构 | 将方法转换为索引器

  3. 如果未发现冲突,JetBrains Rider会立即执行重构。 否则,它会提示您 解决冲突

最后修改日期: 2025年 9月 26日