[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.
      }
   }
}

接口和抽象类的区别&接口为什么不能有构造函数

以举例的方式说到如何区分抽象类和接口,这里我们从Java语法谈起,使我们更加了解这两者的内在区别。它们的语法区别:1)接口不能有构造方法,抽象类可以有。2)接口不能有方法体,抽象类可以有。3)接口不能...
  • qq_24919679
  • qq_24919679
  • 2017年01月12日 15:26
  • 1266

Java中抽象类和接口中有构造方法吗?

1.时间:2017-07-05 10:25:44 YuanMxy 2.问题描述:Java中抽象类和接口中有构造方法吗? 3.问题解答: (1)Java中抽象类和接口中有构造方法吗? ...
  • YuanMxy
  • YuanMxy
  • 2017年07月05日 10:56
  • 9255

kotlin的 类,继承,重载,抽象类,构造函数

kotlin--类和继承 主要内容 类声明构造函数声明实例化继承方法重载抽象类 一、类声明 使用class关键字声明类,查看其声明格式: : modifier...
  • u010361662
  • u010361662
  • 2017年01月04日 17:57
  • 2977

JS设计模式 - 构造函数模式,工厂模式与抽象工厂模式

JS设计模式 - 构造函数模式,工厂模式与抽象工厂模式 1. 构造函数模式 (1) JS中创建新对象的三种常用方法 var newObject = {}; var newObje...
  • It_rod
  • It_rod
  • 2017年11月26日 12:37
  • 298

数据结构 C++ 详细注释 构造函数与析构函数 类型转换.rar

  • 2011年05月15日 16:37
  • 2KB
  • 下载

计算机程序设计(C++)第10周编程作业数据的抽象和封装——类(2)——构造函数、析构函数和指向对象的指针

/* 1定义一个带重载构造函数的日期类 题目内容: 定义一个带重载构造函数的日期类Date,数据成员有年、月、日;成员函数包括:一个带参数的构造函数Date(int,int,int),一个不带参数的构...
  • guaxie9392
  • guaxie9392
  • 2017年05月12日 14:37
  • 593

Qt::WindowFlags枚举类型解析 By Xchen 20160718 在使用Qt设计的时候经常会看到QWidget控件的构造函数出现下面这样一句话: QWidget(QWidget *

Qt::WindowFlags枚举类型解析 By Xchen 20160718 在使用Qt设计的时候经常会看到QWidget控件的构造函数出现下面这样一句话: QWidget(Q...
  • u012803067
  • u012803067
  • 2017年07月05日 21:14
  • 158

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

#include #include using namespace std; class Triangle {public: Triangle();//有默认值构造函数 ...
  • qzshiyongjie123
  • qzshiyongjie123
  • 2012年03月17日 15:39
  • 542

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

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

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

/* (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生 * All rights reserved. * 文件名称: ...
  • sdmiaoying
  • sdmiaoying
  • 2012年03月19日 18:02
  • 529
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:[FxCop.设计规则]1. 抽象类型不应具有构造函数
举报原因:
原因补充:

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