簡體   English   中英

C# 如何將隊列參數作為值而不是默認引用傳遞

[英]C# how to pass queue parameters as values instead of the default reference

我有這個接受隊列參數作為引用的類。 我不想更改發送的隊列,所以使用值而不是引用。

    public static Deque<DateClose> SMAMethod (Queue<DateClose> queue, int period)
    {
        _queue = queue;
        _period = period;

        decimal average, sum=0;
        Deque<DateClose> sample = new Deque<DateClose>(_period);
        DateClose dateClose = null;
        for (int i = 0; i < _period; i++)
        {
            dateClose = _queue.Dequeue();

            if (dateClose != null)
            {
                sum += dateClose.ClosingPrice;
                sample.AddToBack(dateClose);
            }
        }
        average = sum/_period;
        DateClose dc = new DateClose { Time = dateClose.Time, ClosingPrice = average };

        sample.AddToBack(dc);
        return sample;
    }

這是調用代碼:

// send the movingAverageQueue along with the MAperiod to caluclate a SMA queue
var simpleMovingAverage = SMA.SMAMethod(movingAverageQueue, MAperiod);

也許您應該使用淺克隆( 隊列支持它

public static Deque<DateClose> SMAMethod (Queue<DateClose> queue, int period)
{
    _queue = queue.Clone();
    //....

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM