Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
| Tulajdonság | Érték |
|---|---|
| Szabályazonosító | IDE0304 |
| Cím | Gyűjteménykifejezés használata az építőhöz |
| Kategória | Stílus |
| Alkategória | Nyelvi szabályok (kifejezésszintű beállítások) |
| Alkalmazandó nyelvek | C# 12+ |
| Beállítások | dotnet_style_prefer_collection_expression |
Áttekintés
Ez a szabály megjelöli azokat a helyeket, ahol egy CreateBuilder() vagy hasonló metódust meghívnak egy olyan szerkesztőtípus létrehozásához, amely elemeket ad hozzá, és végül létrehoz egy olyan gyűjteménytípust, amely rendelkezik az CollectionBuilderAttribute attribútummal (például meghívással ImmutableArray<T>.Builder.ToImmutable()). Ehelyett egy gyűjteménykifejezés ([...]) használható a gyűjtemény inicializálásához.
Feljegyzés
Ez a szabály a nem módosítható API-k (például) újabb verzióit igényli, System.Collections.Immutableamelyek a gyűjteménykifejezési mintát választják.
Beállítások
A beállítások határozzák meg a szabály kényszerítéséhez használni kívánt viselkedést. A beállítások konfigurálásával kapcsolatos információkért tekintse meg az Option formátumot.
dotnet_style_prefer_collection_expression (gyűjteménykifejezés használatának preferálása)
| Tulajdonság | Érték | Leírás |
|---|---|---|
| Beállítás neve | dotnet_style_prefer_collection_expression (gyűjteménykifejezés használatának preferálása) | |
| Beállításértékek | true | when_types_exactly_match |
Inkább csak akkor használjon gyűjteménykifejezéseket, ha a típusok pontosan egyeznek, például List<int> list = new List<int>() { 1, 2 };. |
when_types_loosely_match* |
A gyűjteménykifejezéseket akkor is érdemes használni, ha a típusok lazán egyeznek, például IEnumerable<int> list = new List<int>() { 1, 2 };. A megcélzott típusnak meg kell egyeznie a jobb oldali típussal, vagy a következő típusok egyikének kell lennie: IEnumerable<T>, , , ICollection<T>, IList<T>IReadOnlyCollection<T>. IReadOnlyList<T> |
|
false | never |
Letiltja a szabályt. | |
| Alapértelmezett beállításérték | when_types_loosely_match* |
*Ha ezt a lehetőséget használja, a kódjavítás megváltoztathatja a kód szemantikáját.
Példa
// Code with violation.
var builder = ImmutableArray.CreateBuilder<int>();
builder.Add(1);
builder.AddRange(new int[] { 5, 6, 7 });
ImmutableArray<int> i = builder.ToImmutable();
// Fixed code.
ImmutableArray<int> i = [1, .. new int[] { 5, 6, 7 }];
Figyelmeztetés mellőzése
Ha csak egyetlen szabálysértést szeretne letiltani, adjon hozzá előfeldolgozási irányelveket a forrásfájlhoz a szabály letiltásához és újbóli engedélyezéséhez.
#pragma warning disable IDE0304
// The code that's violating the rule is on this line.
#pragma warning restore IDE0304
Ha le szeretné tiltani egy fájl, mappa vagy projekt szabályát, állítsa annak súlyosságát none a konfigurációs fájlban.
[*.{cs,vb}]
dotnet_diagnostic.IDE0304.severity = none
Az összes kódstílus-szabály letiltásához állítsa be a kategória Style súlyosságát none a konfigurációs fájlban.
[*.{cs,vb}]
dotnet_analyzer_diagnostic.category-Style.severity = none
További információ: Kódelemzési figyelmeztetések letiltása.