コード検査: ローカル機能を静的にすることができます
静的ローカル関数は、囲んでいるスコープの状態に依存しないように設計されています。ReSharper が外側のスコープの変数を使用しないローカル関数を検出した場合、そのような関数を静的にすることをお勧めします。
これにより、ReSharper は関数の使用目的を推測し、後でコードを読んだり変更したりする人にこの意図が明確に見えるようにします。
class Test
{
void Foo()
{
Console.WriteLine(LocalFunction1("test "));
// Can be made static because no local variables are captured
string LocalFunction1(string str) => str.Trim(' ');
const string test = "test ";
Console.WriteLine(LocalFunction2());
// Cannot be made static because the variable 'test' is captured
string LocalFunction2() => test.Trim(' ');
}
}
2024 年 2 月 11 日
関連ページ:
コードインスペクション設定を構成する
設計時コードインスペクションを構成する:デフォルトでは、ReSharper は、サポートされている言語に対応するすべてのファイルで設計時コードインスペクションを有効にします。必要に応じて、無効にすることができます。設計時コードインスペクションが有効かどうかに関係なく、コードインスペクションは常に特定のスコープで実行できます。メインメニューからを選択するか、Alt+R O を押してから、左側のを選択します。設計時コードインスペクションを切り替えるには、コード分析を有効にするチェックボックスを使用し...
コード検査: 冗長な「抽象」修飾子
C# 8.0 以降、インターフェースメンバーで修飾子を使用できます。ただし、インターフェースメンバーはデフォルトで抽象的であるため、この修飾子はオプションです。つまり、デフォルトの実装(C# 8.0 の新機能でもあります)がない限り、実装クラスでオーバーライドする必要があります。そのため、ほとんどの場合、修飾子は冗長です。本体のないインターフェースメンバーは、同様のバイトコードにコンパイルされます。インターフェースメンバーで修飾子を使用する必要がある場合は、このメンバーがベースインターフェースの...