次のコードがあります。
[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
}
ただし、FxCop
このクラス/関数を実行すると、それでも警告が生成されます
警告: CA1800: Microsoft.Performance: パラメーターである 'table' が、メソッド 'ccc.SetTestConnectionString(Component)' で型 'xxx' に複数回キャストされています。冗長な castclass 命令を排除するために、'as' 演算子または直接キャストの結果をキャッシュします。
このコードをリファクタリングして警告を削除できることはわかっていますが、コードが読みにくくなります。この例では、この 1 つの関数でこの 1 つのメッセージを抑制したいと考えています。
私は何を間違っていますか?