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

本文关键字:访问 不一致 取错误 抽象类 用法 获取 | 更新日期: 2023-09-27 18:32:32

>我有一个类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; }
}

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

只需将public添加到您的类中,它就会变成:

public abstract class ConfirmNonInventoryViewModel{
   //...
}

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