Table of Contents

Class SequenceGeneratorBase<T>

Namespace
LfrlAnvil.Generators
Assembly
LfrlAnvil.Core.dll

Represents a generic sequence generator of objects within specified range.

public abstract class SequenceGeneratorBase<T> : ISequenceGenerator<T>, IBoundGenerator<T>, IGenerator<T>, IGenerator where T : IComparable<T>

Type Parameters

T

Object type.

Inheritance
SequenceGeneratorBase<T>
Implements
Derived
Inherited Members
Extension Methods

Constructors

SequenceGeneratorBase(Bounds<T>, T, T)

Creates a new SequenceGeneratorBase<T> instance.

protected SequenceGeneratorBase(Bounds<T> bounds, T start, T step)

Parameters

bounds Bounds<T>

Range of values that can be generated.

start T

Next value to generate.

step T

Difference between two consecutively generated values.

Exceptions

ArgumentOutOfRangeException

When bounds do not contain start.

Properties

Bounds

Range of values that can be generated.

public Bounds<T> Bounds { get; }

Property Value

Bounds<T>

Step

Difference between two consecutively generated values.

public T Step { get; }

Property Value

T

Methods

AddStep(T)

Adds Step to the previously generated value in order to calculate the next value to generate.

protected abstract T AddStep(T value)

Parameters

value T

Previously generated value.

Returns

T

Next value to generate.

Exceptions

OverflowException

When an arithmetic overflow occurred.

Generate()

Generates a new object.

public T Generate()

Returns

T

Generated object.

Exceptions

ValueGenerationException

When object could not be generated.

Reset(T)

Resets the generator by explicitly setting the next value to generate.

public void Reset(T start)

Parameters

start T

Next value to generate.

Exceptions

ArgumentOutOfRangeException

When Bounds> do not contain start.

TryGenerate(out T)

Attempts to generate a new object.

public bool TryGenerate(out T result)

Parameters

result T

out parameter that returns generated object, if successful.

Returns

bool

true when object was generated successfully, otherwise false.