コード検査: パラメーターはプライマリコンストラクターパラメーターを非表示にする
オブジェクト初期化子を使用して using
変数を初期化すると、初期化中に例外がスローされた場合に問題が発生する可能性があります。これが可能になるのは、実行が using
句に入る前にコンパイラーがオブジェクトを作成して初期化するためです。初期化中に例外がスローされた場合、プログラムは using
句に入らず、オブジェクトは破棄されません。
以下の例では、Print()
メソッドのパラメーター str
は、MySample
クラスのプライマリコンストラクターパラメーターと同じ名前を持っていますが、Console.WriteLine(str);
が two
を出力することは明らかです。
ここで、MySample
と Print()
が複数のパラメーターを持つ長い宣言であると想像してください。この場合、コードの読者はメソッド内の str
パラメーターを見逃し、Console.WriteLine(str);
がオブジェクトの作成中に受信した one
を出力すると想定する可能性があります。
混乱や潜在的なエラーを避けるために、メソッドパラメーターの名前を変更します。
関連ページ:
コードインスペクション設定を構成する
設計時コードインスペクションを構成する:デフォルトでは、JetBrains Rider はサポートされている言語に対応するすべてのファイルで設計時コードインスペクションを有効にします。必要に応じて、無効にすることができます。設計時コードインスペクションが有効かどうかにかかわらず、コードインスペクションを特定の範囲でいつでも実行できます。「鉛筆」ウィジェットを使用して、エディターから直接インスペクション設定をすばやく調整するか、設定でより詳細な構成を行うことができます。を押すか、メニューから(W...
コード検査: 文字列フォーマット方法の問題
このインスペクションは、および同様のメソッドのフォーマット引数内のフォーマット項目が正しく使用されていることを検証します。のように動作するカスタムフォーマットメソッドがある場合は、それに JetBrains.Annotations から [ 文字列形式メソッド属性 ] のマークを付けて、対応するチェックを有効にすることができます。以下に例を示します。[StringFormatMethod("message")] void ShowError( string message, params object[...