如何解决如何在抽象类c#中设置值
我正在尝试为 AbstractaradjustmentLine 列表属性赋值,但出现错误
未设置对象引用
下面是通过dll生成的2个类,我无法改变类结构。
public class aradjustmentCreate : Abstractaradjustment
{
public aradjustmentCreate(string controlId = null);
public override void WriteXml(ref IaXmlWriter xml);
}
public abstract class Abstractaradjustment: AbstractFunction
{
public List<AbstractaradjustmentLine> Lines;
public DateTime? GlPostingDate;
public DateTime TransactionDate;
public string CustomerId;
}
public abstract class AbstractaradjustmentLine : IXmlObject
{
public string WarehouseId;
public string EmployeeId;
protected AbstractaradjustmentLine();
}
// 创建 aradjustmentCreate 的实例
aradjustmentCreate aradjustmentCreate = new aradjustmentCreate()
{
CustomerId = "23",TransactionDate = DateTime.Now,GlPostingDate = DateTime.Now,};
AbstractaradjustmentLine aradjustmentLine = null;
aradjustmentLine.WarehouseId = "788"; // getting error Object reference not set
aradjustmentLine.EmployeeId = "100";
aradjustmentCreate.Lines.Add(aradjustmentLine);
如何在 AbstractaradjustmentLine
抽象类中设置值?
解决方法
您设置了 AbstractArAdjustmentLine arAdjustmentLine = null;
,可能是因为您意识到您无法实例化抽象类,但您需要一个实例来设置属性。使用抽象类的唯一实用方法是继承子类型:
abstract class A { }
class B : A { }
// Works:
A a = new B();
// Works:
B b = new B();
// Does not work:
A c = new A();
请参阅文档中的 null keyword 和 abstract,以及本网站中的 What is a NullReferenceException,and how do I fix it?。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。