• 筛选过的 Code rule


    Code Rule Note

    Microfost.Design

    CA1001:具有可释放字段的类型应该是可释放的

    using System;

    using System.IO;

    namespace DesignLibrary

    {

       // This class violates the rule.

       public class NoDisposeMethod

       {

          FileStream newFile;

          public NoDisposeMethod()

          {

             newFile = new FileStream(@"c:\temp.txt", FileMode.Open);

          }

       }

       // This class satisfies the rule.

       public class HasDisposeMethod: IDisposable

       {

          FileStream newFile;

          public HasDisposeMethod()

          {

             newFile = new FileStream(@"c:\temp.txt", FileMode.Open);

          }

          protected virtual void Dispose(bool disposing)

          {

             if (disposing)

                {

                   // dispose managed resources

                   newFile.Close();

                }

              // free native resources

          }

          public void Dispose()

          {

             Dispose(true);

                 GC.SuppressFinalize(this);

          }

       }

    }

    CA1008:枚举应具有零值

    CA1011:考虑将基类型作为参数传递

    CA1016:用 AssemblyVersionAttribute 标记程序集

    CA1017:用 ComVisibleAttribute 标记程序集

    CA1018:用 AttributeUsageAttribute 标记特性

    CA1023:索引器不应是多维的

    CA1024:在适用处使用属性

    在大多数情况下,属性代表数据,而方法执行操作。访问属性的方式与访问字段的方式相似,因此使用它们更容易。如果存在下列条件之一,方法就很适于成为属性:

    • 不采用任何参数并返回对象的状态信息。
    • 接受单个参数来设置对象的部分状态。

    属性的表现应当与字段一样;如果该方法不是这样,则不应将其更改为属性。在下列情况下,方法比属性更好:

    • 方法执行耗时的操作。与设置或获取字段值所需的时间相比,此方法的速度明显较慢。
    • 方法执行转换。访问字段不会返回它所存储的数据的转换版本。
    • Get 方法会产生明显副作用。检索字段的值不会产生任何副作用。
    • 执行的顺序很重要。设置字段的值并不依赖于其他操作的发生。
    • 连续调用两次方法会产生不同的结果。
    • 方法是静态的,但返回了调用方可更改的对象。调用方不能通过检索某字段的值来更改该字段存储的数据。
    • 方法返回数组。

    CA1025:用形参数组替换重复的实参

    CA1034:嵌套类型不应是可见的

    CA1040:避免使用空接口

    CA1044:属性不应是只写的

    CA1049:拥有本机资源的类型应是可释放的

    CA1051:不要声明可见实例字段

    CA1053:静态容器类型不应具有构造函数

    CA1060:将 P/Invoke 移动到 NativeMethods 类

    CA1062:验证公共方法的参数

    CA1063:正确实现 IDisposable

    CA1065:不要在意外的位置引发异常

    Microsoft.Globalization

    CA1307:指定 StringComparison

    CA1308:将字符串规范化为大写

    CA1309:使用序号 StringComparison

    CA2101:指定对 P/Invoke 字符串参数进行封送处理

      // Violates rule: SpecifyMarshalingForPInvokeStringArguments.
            [DllImport("advapi32.dll", CharSet=CharSet.Auto)]
            internal static extern int RegCreateKey(IntPtr key, String subKey, out IntPtr result);
     
            // Satisfies rule: SpecifyMarshalingForPInvokeStringArguments.
            [DllImport("advapi32.dll", CharSet = CharSet.Unicode)]
            internal static extern int RegCreateKey2(IntPtr key, String subKey, out IntPtr result);

     

    Microsoft.Maintainability

    CA1500:变量名不应与字段名相同

    CA1504:检查令人误解的字段名

    CA1505:避免编写无法维护的代码

    Microsoft.Mobility

    CA1601:不要使用阻止电源状态更改的计时器

    Microsoft.Naming

    CA1700:不要命名“Reserved”枚举值

    CA1701:资源字符串复合词应采用正确的大小写

    CA1702:复合词应采用正确的大小写

    CA1703:资源字符串应正确拼写

    CA1704:标识符应正确拼写

    CA1707:标识符不应包含下划线

    CA1709:标识符的大小写应当正确

    CA1710:标识符应具有正确的后缀

    CA1711:标识符应采用正确的后缀

    CA1712:不要将类型名用作枚举值的前缀

    CA1715:标识符应具有正确的前缀

    CA1716:标识符不应与关键字冲突

    CA1717:只有 FlagsAttribute 枚举应采用复数形式的名称

    CA1719:参数名不应与成员名冲突

    CA1720:标识符不应包含类型名称

    CA1721:属性名不应与 get 方法冲突

    CA1722:标识符应采用正确的前缀

    CA1724:类型名不应与命名空间冲突

    CA1725:参数名应与基方法中的声明保持一致

    CA1726:使用首选词条

    CA2204:应正确拼写文本

    Microsoft.Performance

    CA1800:避免进行不必要的强制转换

    CA1802:在合适的位置使用文本

    CA1804:移除未使用的局部变量

    CA1809:避免过多的局部变量

    CA1811:避免使用未调用的私有代码

    CA1812:避免未实例化的内部类

    CA1815:重写值类型上的 Equals 和相等运算符

    CA1819:属性不应返回数组

    CA1820:使用字符串长度测试是否有空字符串

    CA1822:将成员标记为 static

    CA1823:避免未使用的私有字段

    Microsoft.Portability

    CA1900:值类型字段应为可移植字段

    CA1903:仅使用目标框架中的 API

    Microsoft.Reliability

    CA2000:超出范围前释放对象

    CA2001:避免调用有问题的方法

    Microsoft.Usage

    CA1801:检查未使用的参数

    CA1806:不要忽略方法结果

    CA1816:正确调用 GC.SuppressFinalize

    CA2200:再次引发以保留堆栈详细信息

    CA2201:不要引发保留的异常类型

    CA2202:不要多次释放对象

    CA2205:使用 Win32 API 的托管等效项

    CA2208:正确实例化参数异常

    CA2211:非常量字段不应是可见的

    CA2213:应释放可释放的字段

    CA2215:Dispose 方法应调用基类的 Dispose

    CA2216:可释放类型应声明终结器

    CA2224:重载相等运算符时重写 Equals 方法

    CA2227:集合属性应为只读

    CA2229:实现序列化构造函数

    CA2230:对可变数量的参数使用 params

    CA2234:传递 System.Uri 对象,而不传递字符串

    CA2241:为格式化方法提供正确的参数

    CA2242:正确测试 NaN

     

  • 相关阅读:
    jmeter解决乱码
    RedisTemplate方法详解
    linux centos7忘记密码?
    redis config 详解
    Spring Security使用详解(基本用法 )
    Oauth介绍
    springSecurity+Oauth2.0之授权模式(客户端、密码模式)
    springCloud Sleuth分布式请求链路跟踪
    spring cloud Stream消息驱动
    HttpServletResponse
  • 原文地址:https://www.cnblogs.com/xiaokang088/p/2827442.html
Copyright © 2020-2023  润新知