我有一个使用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; }
}
答案 0 :(得分:6)
只需将public
添加到您的班级即可:
public abstract class ConfirmNonInventoryViewModel{
//...
}
这样,您的基类与派生类具有相同的可访问性。