C# 在C中初始化和重用对象

C# 在C中初始化和重用对象,c#,C#,我有两门课: public class Orders { public int OrderId { get; set; } private List<OrderLine> OLines; } public class OrderLine { public int ProductId { get; set; } public int Qty { get; set; } } 我想做的是在一开始我想初始化对象,然后,当顺序完成时,我想清理该对象的所有成

我有两门课:

public class Orders
{
    public int OrderId { get; set; }
    private List<OrderLine> OLines; 
}

public class OrderLine
{
    public int ProductId { get; set; }
    public int Qty { get; set; }
}

我想做的是在一开始我想初始化对象,然后,当顺序完成时,我想清理该对象的所有成员,并从一开始就用初始化的值重新使用它。

这将确保您的类中始终有一个列表

public class Orders
{
    public int OrderId { get; set; }

    private List<OrderLine> oLines;
    public List<OrderLine> OLines
    {
        get
        {
            if (oLines == null)
                oLines = new List<OrderLine>();
            return oLines;
        }
    }
}

public class OrderLine
{
    public int ProductId { get; set; }
    public int Qty { get; set; }
}

你的意思可能是放弃

释放对象使用的内存:

可以通过调用Collect强制垃圾收集,但是 大多数情况下,这应该避免,因为它可能会造成 性能问题

在同一变量/属性中使用全新对象:


在这种情况下,只需创建一个对象的新实例,将其分配给变量/属性,并让垃圾收集器完成清理未使用引用的工作。当对象超出范围时,它们会自动被处理掉。因此,您希望父对象顺序在其内部对象被删除时保持活动状态


如果要有父对象的一个实例。考虑使用,这样你就可以保持父对象存活,只要你想离开它的正常范围。然后,当使用此父对象时,手动对其成员OrderId进行排序,当不再需要它们时对其进行排序。

不要重用对象。垃圾收集器非常聪明。你不需要“丢弃”任何对象。垃圾收集器为您执行此操作。有一些例外情况,但在您的特殊情况下,您不必这样做。如何将同一对象及其所有成员重新使用InitializedCreate。旧引用将自动丢弃。@JanetOhara-您不能重用对象。你只需要在需要时创建新订单。这意味着当我处理完一个订单,然后在处理下一个订单之前进行初始化时,我只需将此示例订单称为=新订单;我只是担心,如果我调用sampleorder=null,然后将其用于下一个订单,那么垃圾收集器将在稍后被调用,并完全破坏我正在处理的当前订单。sampleorder只是一个存储对象引用的地方。
public class Orders
{
    public int OrderId { get; set; }

    private List<OrderLine> oLines;
    public List<OrderLine> OLines
    {
        get
        {
            if (oLines == null)
                oLines = new List<OrderLine>();
            return oLines;
        }
    }
}

public class OrderLine
{
    public int ProductId { get; set; }
    public int Qty { get; set; }
}