Details
-
Type:
Code Smell Detection
-
Status: Active
-
Resolution: Unresolved
-
Labels:
-
Message:
-
Highlighting:
- Primary: on the "is" check
- Secondary: on the following casts
-
Default Severity:Minor
-
Impact:Low
-
Likelihood:Low
-
Default Quality Profiles:Sonar way
-
Covered Languages:C#
-
Remediation Function:Constant/Issue
-
Constant Cost:10min
-
Analysis Scope:Main Sources, Test Sources
-
FxCop:DoNotCastUnnecessarily
-
ReSharper:CanBeReplacedWithTryCastAndCheckForNull
Description
Because the is operator performs a cast if the object is not null, using is to check type and then casting the same argument to that type, necessarily performs two casts. The same result can be achieved more efficiently with a single cast using as, followed by a null-check.
Noncompliant Code Example
if (x is Fruit) // Noncompliant { var f = (Fruit)x; // or x as Fruit // ... }
Compliant Solution
var f = x as Fruit; if (f != null) { // code }
Attachments
Issue Links
- is related to
-
RSPEC-1905 Redundant casts should not be used
- Active