Инструменты-> Опции-> Текстовый редактор-> Все языки. Около нижней части.
По крайней мере, в первом варианте сгенерированный класс для страницы .aspx отвечает за подключение обработчика событий (и, таким образом, требует, чтобы обработчик событий был Защищен
); тогда как во втором варианте класс программной части отвечает за подключение обработчика событий (так что обработчик событий может быть Private
).
Я не знаю, как именно обрабатывает Ключевое слово
реализовано в VB.NET, но оно также может повлиять на синхронизацию подключения (я знаю, что подключение события в методе OnInit
программной части подключает метод в другом время в цикле страницы, чем проводка его через разметку, и несколько неясных случаев, когда это имеет значение).
Я лично, предпочтительнее использовать метод Handles
(или использовать + =
в C # в переопределении OnInit
). Это позволяет компилятору проверять, существуют ли методы и не должны быть без надобности открыты для наследующих классов. Компиляция также помогает при использовании инструментов рефакторинга, поиске использования и т. Д.
Заметной разницы нет. Оба они эквивалентны использованию ключевого слова AddHandler . Использование атрибута OnClick
больше совместимо с кодом ASP.NET, который может использовать C #, а использование ключевого слова Handles
более совместимо с кодом Windows Forms VB.NET.
В обоих добавлен обработчик событий. Дескрипторы доступны в VB.Net, а не в C #.
Кроме того,
The first one is an example of how pages using c# code behind register the event to the function. This one then needs a method matching the definition.
The second one is the vb.net way of attaching the event to a function.