using System.Collections; using System.Collections.Generic; using Chernobyl.Utility; namespace Chernobyl.Collections.Generic.Event { /// /// An type that makes creating new /// types easier. /// public abstract class DecoratingEventEnumerable : EventEnumerable { /// /// Initializes a new instance of the class. /// /// The /// being decorated or extended with event capabilities. protected DecoratingEventEnumerable(IEnumerable enumerableDecorated) { enumerableDecorated.ThrowIfNull("enumerableDecorated"); _enumerableDecorated = enumerableDecorated; } /// /// The being decorated or extended /// with event capabilities. /// protected override IEnumerable EnumerableDecorated { get { return _enumerableDecorated; } } /// /// The backing field to . /// readonly IEnumerable _enumerableDecorated; } /// /// An type that makes creating new /// types easier. /// /// The type that is to be held within this /// . public abstract class DecoratingEventEnumerable : EventEnumerable { /// /// Initializes a new instance of the /// class. /// /// The /// being decorated or extended with event capabilities. protected DecoratingEventEnumerable(IEnumerable genericEnumerableDecorated) { genericEnumerableDecorated.ThrowIfNull("genericEnumerableDecorated"); _genericEnumerableDecorated = genericEnumerableDecorated; } /// /// The being decorated or extended /// with event capabilities. /// protected override IEnumerable GenericEnumerableDecorated { get { return _genericEnumerableDecorated; } } /// /// The backing field to . /// readonly IEnumerable _genericEnumerableDecorated; } }