(プライベートアクセシビリティ) | JetBrains Rider">(プライベートアクセシビリティ) | JetBrains Rider"> (プライベートアクセシビリティ)" data-article-props="{"SeeAlso" :[{"title" :"Concepts" ,"links" :[{" ;url":"Finding_Code_Issues.html","text": "コードインスペクションでコードの問題を検索"},{"url":"Code_Analysis__Code_Inspections.html","text": "コードインスペクション" },{"url" :"Design_time_Inspection.html" ,"text" :" 設計時のコードの問題の分析 "}]},{"title" :" 外部リンク "," リンク ": [{"url" :"https://colinmackay.scot/2011/07/19/why-should-you-be-returning-an-ienumerable/","text" :"\n なぜ IEnumerable を返す必要があるのですか \n "},{"url" :"https://stackoverflow.com/questions/17903292/resharper-return-type-can-be-ienumerable-but-why","text" :" ;\n StackOverflow: ReSharper、\"Return タイプは IEnumerable にすることができます。\"\n "},{"url" :"https://stackoverflow.com/questions/24631344/why-does-resharper-suggest-return-type-can-be-ienumerablet","text" :"\n StackOverflow: ReSharper が提案する理由: \"Return タイプは IEnumerable にすることができます。\u0026lt;T\u0026gt;\"?\n "},{"url" :"https://stackoverflow.com/questions/1072614/should-i-always-return-ienumerablet-instead-of-ilistt","text" :"\n StackOverflow: 常に IEnumerable\u0026lt;T\u0026gt; を返す必要がありますか ? IList\u0026lt;T\u0026gt;?\n "}]}] の代わりに、"seeAlsoStyle":"links"}" data-template="article" data-breadcrumbs="Reference///null|hidden ">

JetBrains Rider 2024.1 ヘルプ

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

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

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

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

ただし、そのような置換は常に可能ではありません。派生型のメソッドが現在の型のどこにあっても返されたオブジェクトで使用されている場合、JetBrains Rider はこの提案を発行しません。

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 のような特定の型だけで動作するように意図されていて、その実装が将来変更される可能性は低い場合、そのメソッドに対してこのインスペクションを抑制することができます。

関連ページ:

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

設計時コードインスペクションを構成する:デフォルトでは、JetBrains Rider はサポートされている言語に対応するすべてのファイルで設計時コードインスペクションを有効にします。必要に応じて、無効にすることができます。設計時コードインスペクションが有効かどうかにかかわらず、コードインスペクションを特定の範囲でいつでも実行できます。「鉛筆」ウィジェットを使用して、エディターから直接インスペクション設定をすばやく調整するか、設定でより詳細な構成を行うことができます。を押すか、メニューから(W...

コード検査: 安全なキャスト式は常に成功する

参照変数を派生型から基本型に、またはその逆に安全にキャストするために、演算子として使用できます。安全には、コードが例外をスローしないことを意味しますが、キャストを実行できない場合は、値を割り当てる変数にが割り当てられます。タイプに互換性がある場合、を使用した安全なキャストは常に成功するため、この場合、冗長なキャストによってパフォーマンスが低下する可能性があるため、明示的なキャストで十分です。ベース型の変数が派生型との互換性についてすでにチェックされている場合、ベースから派生型へのキャストは冗長に...