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

类型名

StaticHolderTypesShouldNotHaveConstructors

CheckId

CA1053

类别

Microsoft.Design

是否重大更改

原因

公共或嵌套公共类型只声明了静态成员,但具有公共或受保护的默认构造函数。

规则说明

由于调用静态成员不需要类型的示例,因此没必要使用构造函数。 此外,由于类型没有非静态成员,即使创建实例也无法提供对类型的任何成员的访问。

如何解决冲突

要修复与该规则的冲突,请移除默认构造函数或将其设为私有成员。

提示

如果类型没有定义任何构造函数,某些编译器会自动创建公共默认构造函数。 如果您的类型属于这种情况,请添加一个私有默认构造函数以消除此冲突。

何时禁止显示警告

不要禁止显示此规则发出的警告。 存在构造函数表示该类型不是静态类型。

示例

下面的示例演示一个与该规则冲突的类型。 请注意,在源代码中没有任何默认构造函数。 将此代码编译为程序集时,C# 编译器将插入默认构造函数,这会与该规则冲突。 要更正此问题,请声明一个私有构造函数。

using System;

namespace DesignLibrary
{
   public class NoInstancesNeeded
   {
      // Violates rule: StaticHolderTypesShouldNotHaveConstructors.
      // Uncomment the following line to correct the violation.
      // private NoInstancesNeeded() {}

      public static void Method1() {}
      public static void Method2() {}
   }
}