поэтому я написал простой класс таймера
public class ConsoleTimer : IDisposable
{
private Stopwatch _watch;
private IList _items;
public object Count = "0";
public ConsoleTimer(IList items) {
_watch = new Stopwatch();
_items = items;
_watch.Start();
}
public void Dispose() {
var c = Console.ForegroundColor;
Console.ForegroundColor = ConsoleColor.Green;
_watch.Stop();
TimeSpan ts = _watch.Elapsed;
Console.WriteLine(String.Format("{0} items in {1}m {2}s", _items != null ? _items.Count : Count, ts.Minutes, ts.Seconds));
Console.ForegroundColor = c;
}
}
, как вы можете видеть, я принимаю необязательный параметр конструктора (IList), чтобы при изменении этого списка в течение моей области таймера я мог автоматически писатьсколько элементов (строк / записей / объектов и т. д.) было добавлено.
, используя его следующим образом:
using (ConsoleTimer t = new ConsoleTimer(_values)) {
_values = GetValues(filter);
}
Несмотря на то, что в _values есть 955 элементов, метод Dispose моего таймера по-прежнемувидит _items как значение, которое было передано в конструкторе (будь то 0 или ноль)
является ли присвоение _items = items не ссылочным присвоением?