zoukankan      html  css  js  c++  java
  • [FxCop.设计规则]1. 抽象类不应该拥有构造函数

    1.     抽象类不应该拥有构造函数

    原文引用:

    TypeName:
    AbstractTypesShouldNotHaveConstructors
    CheckId:
    CA1012
    Category:
    Microsoft.Design
    Message Level:
    CriticalWarning
    Certainty:
    95%
    Breaking Change:
    NonBreaking

    Cause: A public type is abstract and has a public constructor.
    Rule Description
    Constructors on abstract types can only be called by derived types. Because public constructors create instances of a type, and you cannot create instances of an abstract type, an abstract type with a public constructor is incorrectly designed.
    How to Fix Violations
    To fix a violation of this rule, either make the constructor protected, or do not declare the type as abstract.
    When to Exclude Messages
    Do not exclude a message from this rule.
    Example Code
    The following example contains an abstract type that violates this rule, and an abstract type that is correctly implemented.
    [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.
          }

       }

    }

    引起的原因:(Cause)

    一个公共抽象类型拥有一个公共的构造函数

    描述:(Rule Description )

    构造函数被用来建立一个对象实例,但是你不能建立一个抽象类型的实例,抽象类型的构造函数就仅仅能够被它的继承类型使用。因此,为一个抽象类构造公共构造函数是一个错误的设计。

    修复:(How to Fix Violations)

    如果需要修复这个问题,可以声明这个构造函数为保护型,或者,声明这个类型不是一个抽象类型。
  • 相关阅读:
    df值自由度学习[转载]
    调用sklearn包中的PLA算法[转载]
    箱线图+小提琴图学习[转载]
    P1616 疯狂的采药 洛谷
    P1164 小A点菜 洛谷
    【noip模拟赛3】确定的位置 (map的遍历 位置原理)
    【noip模拟赛1】古韵之鹊桥相会(最短路)
    【noip模拟赛3】贾老二的工件 (模拟)
    【noip模拟赛1】古韵之乞巧 (dp)
    【noip模拟赛3】拣钱
  • 原文地址:https://www.cnblogs.com/Cajon/p/161724.html
Copyright © 2011-2022 走看看