public void ForEachNonGenericStructEnumerator()
        {
            var counters           = new[] { new DisposableCounter(), new DisposableCounter(), new DisposableCounter() };
            var enumerable_counter = new NonGenericStructEnumerableCounter(counters);

            var ec   = Expression.Parameter(typeof(NonGenericStructEnumerableCounter), "ec");
            var item = Expression.Variable(typeof(DisposableCounter), "c");

            var hitcounter = Expression.Lambda <Action <NonGenericStructEnumerableCounter> >(
                ExpressionEx.ForEach(
                    item,
                    ec,
                    Expression.Call(item, "Hit", Type.EmptyTypes)),
                ec).Compile();

            hitcounter(enumerable_counter);

            foreach (var counter in counters)
            {
                Assert.Equal(1, counter.Count);
                Assert.False(counter.Disposed);
            }
        }
Exemple #2
0
 public Enumerator(NonGenericStructEnumerableCounter owner)
     : this()
 {
     this.owner   = owner;
     this.current = -1;
 }