コレクション初期化子または式を使用する (IDE0028)
財産 | 価値 |
---|---|
ルール ID | IDE0028 |
タイトルの | コレクション初期化子を使用する |
カテゴリの | スタイル |
Subcategory | 言語ルール (式レベルの基本設定) |
該当する言語の | C# と Visual Basic |
オプションの | dotnet_style_collection_initializer |
dotnet_style_prefer_collection_expression |
概要
このスタイル 規則は、コレクション初期化子
.NET 8 (C# 12) 以降のバージョンでは、dotnet_style_prefer_collection_expression
オプションが true
に設定されている場合、Visual Studio の コード修正 は、コレクションの初期化コードを変換してコレクション式 (List<int> list = [1, 2, 3];
) を使用します。 Visual Basic および .NET 7 (C# 11) 以前のバージョンでは、コード修正、コレクション初期化子 (List<int> list = new List<int> { 1, 2, 3 };
) を使用するようにコードを変換します。
手記
Visual Studio で コード修正 を使用する場合、提供される変更のセマンティクスが異なる場合があります。 たとえば、int[] x = new int[] { }
は、セマンティクスが若干異なる int[] x = [];
に置き換えられます。コンパイラは、新しいインスタンスを作成する代わりに、x
にシングルトンを使用します。
オプション
コレクションの初期化時にコレクション初期化子とコレクション式を優先するかどうかを指定するには、この規則に関連付けられているオプションの値を設定します。
オプションの構成の詳細については、「オプション形式
dotnet_style_collection_initializer
財産 | 価値 | 形容 |
---|---|---|
オプション名の | dotnet_style_collection_initializer | |
オプションの値 | true |
コレクション初期化子を使用します。 |
false |
コレクション初期化子は使用しないでください。 | |
既定のオプション値 | true |
dotnet_style_prefer_collection_expression (C# のみ)
財産 | 価値 | 形容 |
---|---|---|
オプション名の | dotnet_style_prefer_collection_expression | |
オプションの値 | true |
コレクション式を使用します。 |
false |
コレクション式は使用しないでください。 | |
既定のオプション値 | true |
例
// IDE0028 violation.
List<int> list = new List<int>();
list.Add(1);
list.Add(2);
list.Add(3);
// Fixed code (with dotnet_style_prefer_collection_expression = true)
List<int> list = [1, 2, 3];
' IDE0028 violation.
Dim list = New List(Of Integer)
list.Add(1)
list.Add(2)
list.Add(3)
' Fixed code.
Dim list = New List(Of Integer) From {1, 2, 3}
警告を抑制する
1 つの違反のみを抑制する場合は、ソース ファイルにプリプロセッサ ディレクティブを追加して無効にしてから、ルールを再度有効にします。
#pragma warning disable IDE0028
// The code that's violating the rule is on this line.
#pragma warning restore IDE0028
ファイル、フォルダー、またはプロジェクトのルールを無効にするには、その重大度を 構成ファイルに none
に設定します。
[*.{cs,vb}]
dotnet_diagnostic.IDE0028.severity = none
すべてのコード スタイルルールを無効にするには、カテゴリ Style
の重大度を、構成ファイルに none
するように設定します。
[*.{cs,vb}]
dotnet_analyzer_diagnostic.category-Style.severity = none
詳細については、「コード分析の警告を抑制する方法」を参照してください。
関連項目
- コレクション式 を
する - オブジェクト初期化子 (IDE0017) を使用する
- 配列にコレクション式を使用する (IDE0300)
.NET