この記事では、静的ローカル関数に関連する 2 つの生産性向上機能の概要について説明します。 1 つは、ローカル関数を静的にするリファクタリングです。もう 1 つは、静的ローカル関数に変数を渡すコードを生成するクイック アクションです。
ローカル関数を静的にする
このリファクタリングは以下に適用されます。
- C#
概要: ローカル関数を静的にし、関数の外部で定義された変数を、関数の宣言と呼び出しに渡します。
条件: ローカル関数を静的にし、すべての変数をその関数のスコープ内で定義することができます。
理由: 静的ローカル関数を使用すると読みやすさが向上します。特定のコードが分離されていることを把握することで、理解、再読み取り、再利用が容易になります。 また、静的ローカル関数によってスコープも提供され、1 つのメソッド内のみで呼び出される静的関数でクラスが煩雑になるのを防ぐことができます。
操作方法
ローカル関数名にキャレットを配置します。
Ctrl+. (ピリオド) キーを押して、[クイック アクションとリファクタリング] メニューをトリガーします。
[Make local function 'static']([ローカル関数を '静的' にする]) を選択します。
静的ローカル関数に変数を明示的に渡す
このクイック アクションは、次に適用されます。
- C#
概要: ローカルの静的関数に変数を明示的に渡します。
条件: ローカル関数を静的にしつつ、その外部で初期化された変数を引き続き使うことができます。
理由: 静的ローカル関数を使うことで、読みやすさが向上します。その宣言や呼び出しはプログラムの特定のコンテキストでしか行えない、ということがわかるためです。 これにより、このコンテキストの外部で変数を定義できる柔軟性がもたらされますが、変数を引数として静的ローカル関数に渡すこともできます。
操作方法
静的ローカル関数内で使用される場所で、変数にキャレットを配置します。
Ctrl+. (ピリオド) キーを押して、[クイック アクションとリファクタリング] メニューをトリガーします。
[ローカルの静的関数で変数を明示的に渡す] を選択します。