コードインスペクション:戻り値の型は IEnumerable<T>(private アクセシビリティ)になり得ます
メソッドがよりジェネリクスな型を返す場合、より柔軟な対応が可能になります。 例: 使用箇所を更新せずにメソッドの実装を変更できます。
また、より汎用的な型を返すことで、将来的に戻り値をより具体的な型に変更する場合にも役立つことがあります。例えば 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);
}
private 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);
}
private static IEnumerable<string> GetNumbers()
{
var Numbers = new List<string> {"1", "2", "3"};
return Numbers;
}
}
しかし、場合によってはより具体的な型を返す方が良いかもしれません。 あるメソッドが Array のような特定の型だけで動作するように意図されていて、その実装が将来変更される可能性は低い場合、そのメソッドに対してこのインスペクションを抑制することができます。
2026 年 7 月 16 日