Question

Je le code suivant:

[SuppressMessage( "Microsoft.Performance", "CA1800:DoNotCastUnnecessarily" )]
private static void SetTestConnectionString( Component table )
{
    if( table is Object1 )
    {
        fn1( (Object1)table );
    }
    // ... a few more if statements for different Classes
}

Cependant, quand je lance FxCop sur cette classe / Fonction génère toujours l'avertissement

  

Attention: CA1800: Microsoft.Performance: 'table', un paramètre, est   la distribution du type « xxx » plusieurs fois dans la méthode   'Ccc.SetTestConnectionString (Component). Mettre en cache le résultat de la « comme »   opérateur ou coulée directe afin d'éliminer la redondance castclass   instruction.

Je sais que je pourrais factoriser ce code pour supprimer l'avertissement, mais il rendrait le code moins lisible. Dans ce cas, je voudrais supprimer ce un message sur cette seule fonction.

Qu'est-ce que je fais mal?

Était-ce utile?

La solution

Vérifiez si vous avez défini le symbole de préprocesseur CODE_ANALYSIS dans les propriétés de votre projet.

Jetez un oeil à: http: // msdn .microsoft.com / fr-fr / bibliothèque / system.diagnostics.codeanalysis.suppressmessageattribute.aspx

Autres conseils

private static void SetTestConnectionString( Component table )
{
    if( table.GetType() == typeof(Object1) )
    {
        Object1 object1 = (Object1)table;
        fn1( object1 );
    }
    // ... a few more if statements for different Classes
}

Je soupçonne que votre fichier de projet contient le TypeDébog est pas. Lorsque le jeu TypeDébog est pas, il ne détecte pas le code de suppression. Ainsi, vous pouvez changer le TypeDébog à plein, car il détecte le code de suppression correctement.

<DebugType>full</DebugType>
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top