问题描述
我正在尝试为 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?。