[英]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.