public void ForEachStructEnumeratorImplicitMembers() { var counters = new[] { new DisposableCounter(), new DisposableCounter(), new DisposableCounter() }; var enumerable_counter = new StructEnumerableCounterImplicitMembers(counters); var ec = Expression.Parameter(typeof(StructEnumerableCounterImplicitMembers), "ec"); var item = Expression.Variable(typeof(DisposableCounter), "c"); var hitcounter = Expression.Lambda <Action <StructEnumerableCounterImplicitMembers> >( 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.True(counter.Disposed); } }
public Enumerator(StructEnumerableCounterImplicitMembers owner) : this() { this.owner = owner; this.current = -1; }