My previous post talked about the layout for a generic range class I was working on. I have now settled on the nomenclature and have filled out the properties and methods. I think I'll post this to CodeProject some day.
[Serializable()]
public class Range<T> : IRange<T> where T : IComparable<T>
{
[Flags]
[Serializable]
public enum RangeCompareResult { ... }
// Constructors
public Range()
public Range(Range<T> range)
public Range(T Start, T End)
// Properties
public T Start
public T End
public bool IsValid
public string Description
public string Name
public object Tag
// Methods
public bool After(T value)
public bool After(T Start, T End)
public bool After(Range<T> range)
public bool Before(T value)
public bool Before(T Start, T End)
public bool Before(Range<T> range)
public bool Contains(T value)
public bool Contains(T Start, T End)
public bool Contains(Range<T> range)
public bool Excludes(T value)
public bool Excludes(T Start, T End)
public bool Excludes(Range<T> range)
public bool Equals(T Start, T End)
public bool Equals(Range<T> range)
public bool Equals(Range<T> Range1, Range<T> Range2)
public override bool Equals(object obj)
public bool Subset(T Start, T End)
public bool Subset(Range<T> range)
public bool Superset(T Start, T End)
public bool Superset(Range<T> range)
public static bool operator ==(Range<T> Range1, Range<T> Range2)
public static bool operator !=(Range<T> Range1, Range<T> Range2)
public override int GetHashCode()
public override string ToString()
public RangeCompareResult RangeCompare(Range<T> Range1, Range<T> Range2)
}