更新:2007 年 11 月
| TypeName | AvoidUncalledPrivateCode | 
| CheckId | CA1811 | 
| 类别 | Microsoft.Performance | 
| 是否重大更改 | 否 | 
原因
某个私有或内部(程序集级别)成员在程序集中没有调用方,既不是由公共语言运行时调用的,也不是由委托调用的。该规则不检查下列成员:
- 显式接口成员。 
- 静态构造函数。 
- 序列化构造函数。 
- 使用 System.Runtime.InteropServices.ComRegisterFunctionAttribute 或 System.Runtime.InteropServices.ComUnregisterFunctionAttribute 标记的方法。 
- 作为重写的成员。 
规则说明
如果当前存在该规则逻辑标识不能识别的入口点,则该规则会报告误报。另外,编译器可以将不可调用的代码发出到程序集中。
如何修复冲突
要修复与该规则的冲突,请移除不可调用的代码或者添加调用该成员的代码。
何时禁止显示警告
可以安全地禁止显示此规则发出的警告。
相关规则
示例
如果在预处理器 if# 区域中调用某个成员,则此规则将误报。
using System;
namespace SampleNamespace
{    
    class SampleClass    
    {        
        static void Main()
        {
        }
        public void NotifyByEMail(string to) 
        {
            // ...
        }
        public void AnotherMethod() 
        {
            #if !DEBUG
                NotifyByEMail("this.that@someplace.com");
            #endif
        }
    }
}