将方法转换为索引器的重构
此重构可帮助您将访问集合的方法转换为索引器,并相应地更新方法的用法。 您可以将其应用于:
具有返回值和一个或多个参数的方法,将其转换为具有相同参数集的索引器的
get访问器。具有
void返回类型和两个或多个参数的方法(其中最后一个参数应为值,其他参数表示索引),将其转换为索引器的set访问器。
请参考以下示例。 如果不存在索引器,重构将创建一个:
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];
}
}
将方法转换为索引器
此功能在以下语言和技术中 受支持:
此处提供的说明和示例针对在 C# 中使用该功能。 有关其他语言的更多信息,请参阅 语言和框架 部分中的相应主题。
最后修改日期: 2025年 9月 27日