コードの構文スタイル: オブジェクトの作成(「new()」と「新しい T()」)
C# 9.0 以降、型が推論できる場合は明示的な型指定をせずにターゲット型付きの new 演算子でオブジェクトを作成できます。つまり、 List<string> _myList = new List<string>(); ではなく List<string> _myList = new(); となります。
コンテキストに応じて、オプションの型指定は、冗長な情報でコードを乱雑にするか、逆に読みやすさを向上させる可能性があります。
したがって、ReSharper はオブジェクト作成式のコードスタイル環境設定を 2 つ提供します:
次の場合のように、作成された型が使用箇所から明らかな場合:
フィールド / 定数 / プロパティ / イベントの初期化子
private Test field = new()明示的な型が優先される場合のローカル変数の初期化子
Test local = new()式本体のメンバーの戻り値
public List <Test> M() => new()配列初期化子
new Test[] { new(), new() }内の値コレクション初期化子
new List <Test> { new(), new() }内の値デフォルトのパラメーター値
void M(TestStruct arg = new()) { }
作成された型が明らかでない場合 (たとえば、return ステートメント内)。
ReSharper は、既存のコードでオブジェクト作成式のスタイル環境設定を強制でき、 コード補完や コード生成の各機能で新しいコードを生成するとき、 コードテンプレートを適用するとき、 リファクタリングを実行するときにも環境設定を考慮します。
オブジェクト作成式の設定を適用する
デフォルトでは、ReSharper は明らかな場合に型指定を冗長なものとしてハイライトし、削除をサポートします:

一方、明確でない場合は、ReSharper が作成する型を明示的に指定することを提案します:

コード内の new 演算子に別のスタイルを使用する場合は、 対応する設定を変更できます。
オブジェクト作成式の環境設定をバルクモードで強制するもう 1 つのオプションは、 コードのクリーンアップです。 組み込みプロファイル フルクリーンアップまたは 再フォーマットして構文スタイルを適用のいずれかを使用して コードクリーンアップを実行するか、後述するように、特定のタスクのみを対象とした カスタムプロファイルを作成して実行することができます。
カスタムコードクリーンアッププロファイルを使用してオブジェクト作成スタイルを適用する
メインメニューから を選択するか、 Alt+R O を押します。
クリーンアッププロファイル設定ページに移動します: 。
新しいカスタムクリーンアッププロファイルを作成する セクションの説明に従って、新しいプロファイルを作成します。 右側のプロファイル設定で、 ノードを展開し、 オブジェクト作成スタイルを適用します(「new()」と「新しい T()」) チェックボックスをオンにします。
オプション ダイアログで 保存 をクリックして変更内容を適用し、ReSharper に保存場所を任せるか、 保存先 セレクターから特定のレイヤーを選択して変更を保存します。 詳細については、 resharper 設定の管理と共有 をご参照ください。
設定を適用する範囲を選択します。
ファイル内の任意の場所にキャレットを配置して、ファイルに設定を適用します。
ソリューションエクスプローラー 内の 1 つまたは複数の項目を選択して、これらのノードおよびその子項目にあるファイルに設定を適用します。
次のいずれかを実行します。
Control+Alt+F を押すか、メインメニューから を選択してください。
テキストエディターの任意の場所を右クリックするか、選択項目を右クリックし、コンテキストメニューで コードのクリーンアップ を選択します。
表示された コードのクリーンアップ ダイアログで、新しく作成したプロファイルを選択します。
実行 をクリックします。 ReSharper は、選択したスコープで環境設定を適用します。
コードのクリーンアップ ダイアログを開いてプロファイルを選択せずにオブジェクト作成式のスタイル環境設定を強制したい場合、作成したプロファイルを サイレントクリーンアップにバインドし、 Control+Shift+Alt+F を押して実行できます。 また、オブジェクト作成式の配置と他のコードスタイルタスクを組み合わせた カスタムクリーンアッププロファイルを作成することもできます。
選択したコードブロックに対して、他のすべての フォーマットや 構文スタイルのルールとあわせてオブジェクト作成式の環境設定を適用するには、 Alt+Enter を押して、 を選択してください。
変更をファイルに保存するたびにオブジェクト作成式のスタイル設定を適用して、編集が常にコードスタイルに準拠するようにすることができます。
変更を保存するときに、オブジェクト作成式のスタイル設定を自動的に適用する
メインメニューから を選択するか、 Alt+R O を押します。
クリーンアッププロファイル設定ページに移動します: 。
カスタムコードのクリーンアッププロファイルを選択し、 デフォルトに設定する をクリックします(デフォルトプロファイルは サイレントクリーンアップにも使用されます)。
オプションページに移動し、 ファイル保存時にクリーンアップを自動的に実行する を選択します。
オプションで、ファイルマスクによって特定のファイルへの自動クリーンアップを制限できます。
ファイルの変更された部分のみ を選択して、変更によって影響を受けるコードにクリーンアップが適用され、ファイル内の残りのコードが変更されないようにすることもできます。
ファイルの変更された部分のみをクリーンアップすることを選択した場合は、次のオプションを使用してこの動作を微調整できます。
部分的なクリーンアップが不可能な場合は完全なクリーンアップを実行する — このオプションに応じて、ReSharper はファイル全体をクリーンアップするか、ファイルの変更部分のみのクリーンアップができない場合は対象ファイルをスキップします。
共有ファイル保存時のクリーンアップを許可する — このオプションを使用して、共有プロジェクトのファイルなど、ソリューションに複数回含まれるファイルの部分的なクリーンアップを有効または無効にします。
ダイアログで 保存 をクリックして変更を適用し、ReSharper に保存場所を任せるか、 保存先 セレクターから特定の設定レイヤーを選択して変更を保存します。 詳細については、 resharper 設定の管理と共有 をご参照ください。
次回編集を終了してファイル( Ctrl+S )またはすべてのファイル( Ctrl+Shift+S )を保存すると、ReSharper は選択したプロファイルで対象ファイルをクリーンアップします。 デフォルトのクリーンアッププロファイルが選択されていない場合、ReSharper はプロファイルのいずれかを選択するよう促します。
オブジェクト作成式の環境設定を構成する
オブジェクト作成式の設定は、 レイヤーベースの設定のメカニズムを使用して保存されます。 このメカニズムにより、さまざまなソリューションに対して異なる設定を維持したり、これらの設定をバージョン管理システム (VCS) で管理したり、チームメンバーと自動的に共有したりすることが可能になります。
ReSharper オプションで設定を構成する
ReSharper オプション Alt+R、O の ページに移動します。
オブジェクトの作成 カテゴリで、作成されたタイプが使用箇所から明らか / 非明白である場合にタイプ指定を優先するかどうかを指定します。
右側の列の 通知する セレクターを使って、環境設定と異なるコードを検出する 重要度レベルや コードインスペクションを設定できます。
オプション ダイアログで 保存 をクリックして変更内容を適用し、ReSharper に保存場所を任せるか、 保存先 セレクターから特定のレイヤーを選択して変更を保存します。 詳細については、 resharper 設定の管理と共有 をご参照ください。
構文スタイルの設定は、すべての言語では EditorConfig 、C++、JavaScript、TypeScript では Clang 形式で行うことができます。 これらの設定は、ソリューション階層の異なるレベルにある .editorconfig 、 .clang-format 、 _clang-format ファイルに保存できます。 これらのファイルは通常 VCS に配置され、そこで定義された設定がプロジェクトチーム間で共有されます。
ReSharper では、EditorConfig を使って ReSharper の オプション ダイアログで設定できる構文スタイルの環境設定を定義できます。 サポートされている EditorConfig プロパティの名前と説明は、 EditorConfig リファレンスにあります。
Clang-Format については、ReSharper では サポートされている Clang-Format オプションのみ適用します。
.editorconfig ファイルで定義された構文スタイルプロパティは、この .editorconfig ファイルが適用されるスコープ内で ReSharper 設定で定義された同じプロパティをオーバーライドする点にご注意ください。 Clang-Format で定義されたフォーマットプロパティは、ReSharper 設定と EditorConfig 設定の両方をオーバーライドします。
EditorConfig を使用してオブジェクト作成スタイルの設定を構成する
目的の .editorconfig ファイルを開きます。
必要な オブジェクト作成スタイルのプロパティをファイルに追加します。 たとえば、次のようになります。
object_creation_when_type_evident = explicitly_typed
異なる言語での適用性
この機能は、次の言語とテクノロジーで サポートされています。