ID: cs/useless-upcast Kind: problem Security severity: Severity: warning Precision: medium Tags: - quality - maintainability - useless-code - external/cwe/cwe-561 Query suites: - csharp-security-and-quality.qls
Click to see the query in the CodeQL repository
In most situations, casting an expression where there exists a corresponding implicit conversion serves no purpose.
Recommendation¶
Remove the redundant cast.
Example¶
In this example, casting explicitly from Sub to Super is redundant.
class Bad { class Super {} class Sub : Super {} void M() { var sub = new Sub(); Super super = (Super)sub; } }
The code above can be fixed, either by removing the explicit cast, or by making super an implicitly typed (var) variable.
References¶
Microsoft: Casting and Type Conversions.
Common Weakness Enumeration: CWE-561.