微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在抽象类c#中设置值

如何解决如何在抽象类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 keywordabstract,以及本网站中的 What is a NullReferenceException,and how do I fix it?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。