[FxCop.设计规则]1. 抽象类型不应具有构造函数

原创 2006年06月06日 09:21:00
抽象类型不应具有构造函数 

 

 

TypeName

AbstractTypesShouldNotHaveConstructors

CheckId

CA1012

Category

Microsoft.Design

Breaking Change

NonBreaking

原因

公共类型为抽象类型,并具有公共构造函数。

规则说明

抽象类型的构造函数只能由派生类型调用。由于公共构造函数用于创建类型的实例,但无法为抽象类型创建实例,因此具有公共构造函数的抽象类在设计上是错误的。

如何修复冲突

要修复与该规则的冲突,请将构造函数设为受保护的构造函数,或者不要将类型声明为抽象类型。

何时排除警告

不要排除与该规则有关的警告。

示例

下面的示例包含一个与该规则冲突的抽象类型以及一个可正确实现的抽象类型。

C#
using System;

namespace DesignLibrary
{
   public abstract class BadAbstractClassWithConstructor
   {
      // Violates rule: AbstractTypesShouldNotHaveConstructors.
      public BadAbstractClassWithConstructor()
      {
      // Add constructor logic here.
      }
   }

   public abstract class GoodAbstractClassWithConstructor
   {
      protected GoodAbstractClassWithConstructor()
      {
         // Add constructor logic here.
      }
   }
}

相关文章推荐

【任务1】设计三角形类,通过增加构造函数,使对象在定义时能够进行初始化

#include #include using namespace std; class Triangle {public: Triangle();//有默认值构造函数 ...

设计三角形类通过增加构造函数,使定义初始化(1)

/* (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生 * All rights reserved. * 文件名称: ...

1.OC第一个工程,类的设计,重构方法,构造函数

1.  OC:objective-c:面向对象的c  面向对象:把事务的过程分解到对象,强调对象的行为;  面向过程:强调解决问题的步骤,强调业务逻辑;  把大象关进冰箱:     1:冰箱...

论C++构造函数中的不合理设计

  • 2011年09月03日 12:17
  • 54KB
  • 下载

C++ 初始化形式、变量初始化规则、类构造函数的初始化列表

类构造函数的初始化列表,举例 一个对象的构造分两部分,首先是分配空间,然后初始化。 只要有对象生成,不管是以什么形式生成,都会调用构造函数进行初始化。 然后下面有个例子,在蓝色区域Big类的复制构造函...

Java基础-构造函数,覆写父类方法,多态及动态绑定,抽象类和Object类的运用

Java构造函数,覆写父类方法,多态及动态绑定,抽象类和Object类的运用

解析C++转换构造函数(调用规则)

解析C++转换构造函数 什么叫转换构造函数? 当一个构造函数只有一个参数,而且该参数又不是本类的const引用时,这种构造函数称为转换构造函数。 参考一下示例: // TypeSwitch.cpp...

JDK1.5新特性之枚举中的构造函数及抽象方法

事实上,enum声明定义的类型就是yiegele
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:[FxCop.设计规则]1. 抽象类型不应具有构造函数
举报原因:
原因补充:

(最多只允许输入30个字)