FXCop抑制警告CA1800(不必要的演员)

TK.*_*TK. 3 c# fxcop suppression

我有以下代码:

[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
}
Run Code Online (Sandbox Code Playgroud)

但是,当我运行FxCop此类/函数时,它仍会生成警告

警告:CA1800:Microsoft.Performance:'table',一个参数,在方法'ccc.SetTestConnectionString(Component)'中多次强制输入'xxx'.缓存'as'运算符或直接强制转换的结果,以消除冗余的castclass指令.

我知道我可以重构此代码以删除警告,但是它会降低代码的可读性.在这个例子中,我想在这一个函数上抑制这一条消息.

我究竟做错了什么?

mun*_*sor 5

检查是否在项目的属性中定义了预处理程序符号CODE_ANALYSIS.

看看:http://msdn.microsoft.com/en-us/library/system.diagnostics.codeanalysis.suppressmessageattribute.aspx