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; }
}