CA1856: Incorrect usage of ConstantExpected attribute
Property | Value |
---|---|
Rule ID | CA1856 |
Title | Incorrect usage of ConstantExpected attribute |
Category | Performance |
Fix is breaking or non-breaking | Non-breaking |
Enabled by default in .NET 8 | As error |
Cause
The ConstantExpectedAttribute attribute is not applied correctly on a parameter.
Rule description
This rule flags incorrect uses of the ConstantExpectedAttribute attribute, such as:
- The Min or Max value isn't compatible with the parameter type.
- The parameter type isn't supported for the ConstantExpectedAttribute attribute.
- The Min and Max values are inverted.
- The Min or Max value doesn't fit within the parameter value bounds.
How to fix violations
Correct your code as indicated by the specific error message you receive.
Example
The following code snippet shows violations of CA1856:
using System.Diagnostics.CodeAnalysis;
// Violation - value not compatible with parameter type.
static void M1([ConstantExpected(Min = "a")] char val) { }
// Violation - unsupported type for attribute.
static void M2([ConstantExpected] decimal val) { }
// Violation - Min and Max values are inverted.
static void M3([ConstantExpected(Max = 0, Min = 1)] int val) { }
// Violation - value does not fit within the parameter value bounds.
static void M4([ConstantExpected(Min = long.MinValue)] int val) { }
The following code snippet fixes the violations:
using System.Diagnostics.CodeAnalysis;
static void M1([ConstantExpected(Min = 'a')] char val) { }
static void M2(decimal val) { }
static void M3([ConstantExpected(Min = 0, Max = 1)] int val) { }
static void M4([ConstantExpected(Min = int.MinValue)] int val) { }
When to suppress warnings
A violation of this rule indicates an error in your code, and should always be fixed.
Bendradarbiaukite su mumis dirbdami „GitHub“
Šio turinio šaltinį galima rasti „GitHub“, kur taip pat galite kurti ir peržiūrėti problemas bei teikti užklausas. Daugiau informacijos žr. mūsų bendraautorių vadove.
Atsiliepimai
https://aka.ms/ContentUserFeedback.
Jau greitai: 2024 m. palaipsniui atsisakysime „GitHub“ problemų, kaip turiniui taikomo atsiliepimų mechanizmo, ir pakeisime jį nauja atsiliepimų sistema. Daugiau informacijos žr.Pateikti ir peržiūrėti atsiliepimą, skirtą