Ваш ones
массив длина = 21
Таким образом, последний элемент, к которому вы можете получить доступ, будет ones[20]
Но в вашей функции remainder(int i)
, вы можете возвращать значения до 99
Поскольку ваш метод содержит эту строку return i % 100;
Поэтому, когда вы будете использовать ones[remainder(i)];
Вы будете лицо Array Index Out of Bounds
обычно , если возвращаемое значение напоминания> 20
Вот то, как зарегистрироваться для обработки событий с помощью C#:
_solutionEvents = _applicationObject.Events.SolutionEvents;
_solutionEvents.Opened += new _dispSolutionEvents_OpenedEventHandler(SolutionOpened);
_solutionEvents.AfterClosing += new _dispSolutionEvents_AfterClosingEventHandler(SolutionClosed);
Также обратите внимание, что, когда пользователь открывает Visual Studio путем двойного щелчка по файлу решения, Вы не получите событие для открытия решения. Необходимо проверить ли _applicationObject. Решение не является пустым в методе OnStartupComplete для обработки этой ситуации правильно.
Класс SolutionEvents на MSDN включает событие:
Открытый: сразу Происходит после открытия решения или проекта.
У Вас есть в классе DTE2 названное свойство Events
это дает вид партий событий, поскольку, что Вам нужны Вы, должны использовать:
DTE2 _applicationObject
_applicationObject.Events.SolutionEvents.Opened+=new _dispSolutionEvents_OpenedEventHandler(SolutionEvents_Opened);