public Interval(int semitones) { if (semitones < 0) throw new ArgumentException("semitones", "Value is not recognised as a valid interval"); while (semitones > (int)IntervalDistance.PerfectOctave) semitones -= (int)IntervalDistance.PerfectOctave; if (Enum.IsDefined(typeof(IntervalDistance), semitones)) { this.distance = (IntervalDistance)semitones; } else { throw new ArgumentException("semitones", "Value is not recognised as a valid interval"); } }
public Interval(IntervalDistance distance) { this.distance = distance; }