インデクサーをメソッドに変換リファクタリング
このリファクタリングは、インデクサの一方または両方のアクセサーをメソッドに変換し、それに応じて現在のソリューションのインデクサの使用状況を更新できます。
以下の例では、ReSharper がインデクサーの getter と setter アクセサーを両方変換し、使用法を更新します:
class BookLibrary
{
private Book[] books = new Book[1000];
public Book this[int index]
{
get => books[index];
set => books[index] = value;
}
public void TestInsertBookAt(Book book, int index)
{
this[index] = book;
}
}
class BookLibrary
{
private Book[] books = new Book[1000];
public void SetItem(int index, Book value) => books[index] = value;
public Book GetItem(int index) => books[index];
public void TestInsertBookAt(Book book, int index)
{
SetItem(index, book);
}
}
インデクサーをメソッドに変換する
エディターでインデクサーの
thisキーワードにキャレットを置くか、 ファイル構造ウィンドウ ウィンドウでインデクサーを選択します。次のいずれかを実行します。
Control+Shift+R を押し、を インデクサーをメソッドに変換する を選択します。
右クリックして、コンテキストメニューから リファクタリング | インデクサーをメソッドに変換する を選択します。
メインメニューから を選択します。
インデクサーをメソッドに変換する ダイアログが開きます。
ダイアログ内のコントロールを使用して、変換するアクセサーを選択し、作成されたメソッドの名前を指定します。
リファクタリングを適用するには、 次へ をクリックします。
競合するものが見つからない場合、ReSharper はすぐにリファクタリングを実行します。 それ以外の場合は、 競合を解決するように求められます。

この機能は、次の言語とテクノロジーで サポートされています。
ここで説明する手順と例では、C# の機能の使用について説明します。 他の言語の詳細については、 言語およびフレームワーク セクションの対応するトピックを参照してください。
2026 年 6 月 12 日