Overbodige lambda-expressie verwijderen (IDE0200)
Eigendom | Waarde |
---|---|
Regel-ID | IDE0200 |
titel | Overbodige lambda-expressie verwijderen |
categorie | Stijl |
subcategorie | Taalregels (voorkeuren voor codeblok) |
Toepasselijke talen | C# 11+ |
opties | csharp_style_prefer_method_group_conversion |
Overzicht
Deze regel markeert het gebruik van een lambda-expressie waar deze niet nodig is. Lambda-expressies zijn mogelijk niet nodig wanneer het volgende waar is:
- De expressie bevat een methode-aanroep.
- De lambda-expressie heeft hetzelfde aantal en dezelfde volgorde van parameters als de aanroep van de methode.
- De aanroep van de methode heeft geen bijwerkingen.
- De lambda-expressie is niet toegewezen aan een niet-delegate type.
- Als de aanroep een algemene methode is, worden de typeargumenten opgegeven.
- Het retourtype van de aangeroepen methode kan worden geconverteerd naar het retourtype van de lambda-expressie.
- Er is slechts één toepasselijke methode in de methodegroep.
Opties
Met opties geeft u het gedrag op dat door de regel moet worden afgedwongen. Zie Option-indelingvoor meer informatie over het configureren van opties.
csharp_style_prefer_method_group_conversion
Eigenschap | Waarde | Beschrijving |
---|---|---|
Naam van de optie | csharp_style_prefer_method_group_conversion | |
optiewaarden | true |
Converteer liever een lambda-expressie naar een methodegroep. |
false |
Hiermee schakelt u de regel uit. | |
standaardoptiewaarde | true |
Voorbeeld
// Code with violations.
bool IsEven(int x) => x % 2 == 0;
_ = new[] { 1, 2, 3 }.Where(n => IsEven(n));
// Fixed code.
bool IsEven(int x) => x % 2 == 0;
_ = new[] { 1, 2, 3 }.Where(IsEven);
Een waarschuwing onderdrukken
Als u slechts één schending wilt onderdrukken, voegt u preprocessorrichtlijnen toe aan uw bronbestand om de regel uit te schakelen en vervolgens opnieuw in te schakelen.
#pragma warning disable IDE0200
// The code that's violating the rule is on this line.
#pragma warning restore IDE0200
Als u de regel voor een bestand, map of project wilt uitschakelen, stelt u de ernst ervan in op none
in het configuratiebestand.
[*.{cs,vb}]
dotnet_diagnostic.IDE0200.severity = none
Als u alle regels voor de codestijl wilt uitschakelen, stelt u de ernst voor de categorie Style
in op none
in het configuratiebestand.
[*.{cs,vb}]
dotnet_analyzer_diagnostic.category-Style.severity = none
Voor meer informatie, zie Hoe u codeanalysewaarschuwingen kunt onderdrukken.