示例#1
0
            public int Compare(object x, object y)
            {
                var xChord = (Chord)x;
                var yChord = (Chord)y;

                return(ChordEquality.AreEqual(xChord, yChord) ? 0 : -1);
            }
示例#2
0
            public bool Equals(ITimedObject timedObject1, ITimedObject timedObject2)
            {
                if (ReferenceEquals(timedObject1, timedObject2))
                    return true;

                if (ReferenceEquals(null, timedObject1) || ReferenceEquals(null, timedObject2))
                    return false;

                var timedEvent = timedObject1 as TimedEvent;
                if (timedEvent != null)
                    return TimedEventEquality.AreEqual(timedEvent, timedObject2 as TimedEvent, _compareDeltaTimes);

                var note = timedObject1 as Note;
                if (note != null)
                    return NoteEquality.AreEqual(note, timedObject2 as Note);

                var chord = timedObject1 as Chord;
                if (chord != null)
                    return ChordEquality.AreEqual(chord, timedObject2 as Chord);

                var rest = timedObject1 as Rest;
                if (rest != null)
                    return rest.Equals(timedObject2 as Rest);

                throw new NotImplementedException($"Comparing of {timedObject1} and {timedObject2} is not implemented.");
            }