将方法转换为索引器的重构
此重构可帮助您将访问集合的方法转换为索引器,并相应地更新方法的用法。 您可以将其应用于:
具有返回值和一个或多个参数的方法,将其转换为具有相同参数集的索引器的
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];
}
}
将方法转换为索引器
最后修改日期: 2025年 9月 26日