C#抽象类使用 - 获取错误不一致的可访问性

时间:2016-01-29 02:42:14

标签: c#

我有一个使用ConfirmNonInventoryViewModel的类,但后来必须提出另一个非常相似但具有一个不同属性的对象类型(随着功能的增加,它可能具有更多独特的属性)。

所以我想将这个原始类转换为基类,然后创建2个派生类来解释2个唯一对象变体。但由于我已经使用原始类并且不想要它的代码,因此开发人员不能直接使用该基类,我认为将其标记为abstract会阻止它被使用和制作它只能使用派生的变体。

但这给了我Inconsistent Accessibility: base class is less accessible than derived class之类的错误。所以我想我误解了抽象类的用途。

如何满足上述要求?

public class ConfirmWorkOrderNonInventoryViewModel : ConfirmNonInventoryViewModel
{
    [Display(Name = "Part:")]
    public int WorkOrderDetailId { get; set; }     
}

public class ConfirmShipOrderNonInventoryViewModel : ConfirmNonInventoryViewModel
{
    [Display(Name = "Order:")]
    public int OrderHeaderId { get; set; }
}

abstract class ConfirmNonInventoryViewModel
{
    [Display(Name = "Part:")]
    public int OrderDetailId { get; set; }

    [Display(Name = "Material:")]
    public string ItemDescription { get; set; }

    [Display(Name = "Est Qty:")]
    public decimal EstimatedQty { get; set; }

    [Required]
    [Display(Name = "Act Qty:")]
    [UIHint("TextBoxFor_50w")]
    public decimal? ConfirmedQty { get; set; }
}

1 个答案:

答案 0 :(得分:6)

只需将public添加到您的班级即可:

public abstract class ConfirmNonInventoryViewModel{
   //...
}

这样,您的基类与派生类具有相同的可访问性。