public virtual EventDescriptor this[int index] { get { if (index >= eventCount) { throw new IndexOutOfRangeException(); } EnsureEventsOwned(); return events[index]; } }