如何在列表的添加方法中使用队列<t> </t>

时间:2014-10-15 01:37:02

标签: c# queue

我有一个属性:

public Queue<string> IncomingQueue { get; set; }

使用以下字段:

public Queue<string> _incomingQueue = new Queue<string>();

我的Transponder的完全合格的构造函数:

public Transponder(string partNumber, string description, Unit unitOfMeasure, decimal cost, decimal markup, Format encoding, string outgoingMessage, Queue<string> incomingQueue)
        : base(partNumber, description, unitOfMeasure, cost, markup)
    {
        this.Encoding = encoding;
        this.OutgoingMessage = outgoingMessage;
        this.IncomingQueue = incomingQueue;
    }

当我手动尝试将发送应答器添加到我的通信器列表中时,我不知道如何在add()中输入Queue incomingQueue。我如何表示incomingQueue? 这是我的add()没有队列:

inventory.Add(new Transponder(RandomTransponderPartNumber<Transponder>(), "Specific Features", Unit.each, 1000m, 125m, Format.XML, "Is anybody out there!", ));

编辑: 以下是Queue的指令:添加Queue-string属性IncomingQueue以及Queue-string类型的相应私有字段。这将从其他发送应答器接收消息。默认初始值应为空队列。

2 个答案:

答案 0 :(得分:0)

对于调用inventory.Add()时的最后一个参数,以下内容将使用新的空队列初始化Transponder

..., new Queue<string>()));

如果您需要与公共财产绑定的支持字段,通常是这样做的:

private Queue<string> _incomingQueue = new Queue<string>();
public Queue<string> IncomingQueue
{
    get { return _incomingQueue; }
    set { _incomingQueue = value; }
}

但请注意,如果IncomingQueue属性始终为空,那么您可以省略最后一个构造函数参数以及相应的{{1}在构造函数内部;私有后备属性this.IncomingQueue = incomingQueue;将确保它始终以空_incomingQueue实例开始。

答案 1 :(得分:0)

  1. 您不需要以下代码行,因为您已经拥有的自动属性IncomingQueue获得了编译器创建的支持字段 -
  2. public Queue<string> _incomingQueue = new Queue<string>();

    1. 您希望使用新的传入队列初始化Transponder
    2. inventory.Add(new Transponder(RandomTransponderPartNumber<Transponder>(), "Specific Features", Unit.each, 1000m, 125m, Format.XML, "Is anybody out there!", new Queue<string>()));