ReSharper 2025.3 ヘルプ

コード検査: 戻り値の型は IEnumerable <T> (非公開アクセシビリティ)

メソッドがよりジェネリクスな型を返す場合、より柔軟な対応が可能になります。例: 使用箇所を更新せずにメソッドの実装を変更できます。

また、より汎用的な型を返すことは、将来、戻り値をより具体的な型 (たとえば、List<T>) に変更する場合に役立つ可能性があります。呼び出し元が IEnumerable<T> を期待している場合、List<T> を受け入れることができますが、その逆はできません。

以下、ReSharper は、GetNumbers() の戻り値の型を List<String> から IEnumerable<String> に変更することを提案しています。

ただし、このような置き換えは常に可能というわけではありません。派生型のメソッドがソリューション内のどこかで返されたオブジェクトで使用されている場合、ReSharper はこの提案を発行しません。

class EnumerableTDemo { public static void Main() { string output = string.Join(" ", GetNumbers()); Console.WriteLine(output); } public static List<string> GetNumbers() { var Numbers = new List<string> {"1", "2", "3"}; return Numbers; } }
class EnumerableTDemo { public static void Main() { string output = string.Join(" ", GetNumbers()); Console.WriteLine(output); } public static IEnumerable<string> GetNumbers() { var Numbers = new List<string> {"1", "2", "3"}; return Numbers; } }

しかし、場合によってはより具体的な型を返す方が良いかもしれません。あるメソッドが Array のような特定の型だけで動作するように意図されていて、その実装が将来変更される可能性は低い場合、そのメソッドに対してこのインスペクションを抑制することができます。

2024 年 4 月 08 日

関連ページ:

コードインスペクション設定を構成する

設計時コードインスペクションを構成する:デフォルトでは、ReSharper は、サポートされている言語に対応するすべてのファイルで設計時コードインスペクションを有効にします。必要に応じて、無効にすることができます。設計時コードインスペクションが有効かどうかに関係なく、コードインスペクションは常に特定のスコープで実行できます。メインメニューからを選択するか、Alt+R O を押してから、左側のを選択します。設計時コードインスペクションを切り替えるには、コード分析を有効にするチェックボックスを使用し...

コード検査: 戻り値の型は IEnumerable <T> (private アクセス)

メソッドがよりジェネリクスな型を返す場合、より柔軟な対応が可能になります。例: 使用箇所を更新せずにメソッドの実装を変更できます。また、より汎用的な型を返すことは、将来、戻り値をより具体的な型 (たとえば、) に変更する場合に役立つ可能性があります。呼び出し元がを期待している場合、を受け入れることができますが、その逆はできません。以下、ReSharper は、の戻り値の型をからに変更することを提案しています。ただし、そのような置換は常に可能ではありません。派生型のメソッドが現在の型のどこにあって...