コード検査: ジェネリクス型の静的フィールドまたは自動プロパティ
大多数の場合、ジェネリクス型で静的フィールドまたは自動プロパティを持つことはエラーの兆候です。この理由は、ジェネリクス型の静的メンバーは、異なる密接に構築された型のインスタンス間で共有されないためです。これは、public static string MyProp { get; set; }
を持つジェネリクスクラス MyGeneric<T>
では、MyGeneric<int>.MyProp
と MyGeneric<string>.MyProp
の値が完全に異なる独立した値を持つことを意味します。
異なる汎用引数を持つインスタンス間で静的フィールドを共有する必要がある場合は、静的メンバーを格納する非汎用基本クラスを定義し、ジェネリクス型をこの型から継承するように設定します。
関連ページ:
![](https://resources.jetbrains.com/help/img/rider/2024.1/code_analysis_target_framework.png)
コードインスペクション設定を構成する
設計時コードインスペクションを構成する:デフォルトでは、JetBrains Rider はサポートされている言語に対応するすべてのファイルで設計時コードインスペクションを有効にします。必要に応じて、無効にすることができます。設計時コードインスペクションが有効かどうかにかかわらず、コードインスペクションを特定の範囲でいつでも実行できます。「鉛筆」ウィジェットを使用して、エディターから直接インスペクション設定をすばやく調整するか、設定でより詳細な構成を行うことができます。を押すか、メニューから(W...
![](https://pleiades.io/icons/rider.png)
コード検査: 明示的に文字列を指定する
データ構造のテキストへのアドホック変換は、現在のカルチャに大きく依存しており、ロケールが元の開発者と異なるマシンでコードを実行すると、意図しない結果につながる可能性があります。あいまいさを防ぐため、JetBrains Rider は、このような問題が発生する可能性のあるコードのインスタンスを警告します。例: 次のコードを取る void Test(float foo) { Console.WriteLine(foo.ToString()); ; } はカルチャに依存しないと思われるかもしれませんが、実...