Использование ByRef и ByVal

Я довольно новичок в программировании, и мне сказали, что я должен передавать вещи, используя ByRef и ByVal, но когда я это делаю, я получаю сообщение об ошибке:

Error   3   Method 'Private Sub Activate_Click(ByRef intIDToChange As Integer, sender As Object, e As System.EventArgs)' 
cannot handle event 'Public Event Click(sender As Object, e As System.EventArgs)' because they do not have a compatible signature.  
F:\Dropbox\Gooby Backup\School Work\Computing\Unit 4\Room Booking Client\WindowsApplication1\ActivateDeactivate\Activate Deactivate.vb  32  129 WindowsApplication1

Я начинаю свой саб с:

Private Sub Activate_Click(ByRef intIDToChange As Integer, sender As System.Object, e As System.EventArgs) Handles Activate.Click

3 ответа

Вы не можете справиться Activate.Click с вашим методом, потому что у вас есть дополнительные Integer параметр, который не совместим с сигнатурой события.

Подпись события

Click(sender As Object, e As System.EventArgs)

Ваш метод

Activate_Click(ByRef intIDToChange As Integer, sender As System.Object, e As System.EventArgs)

Вы должны определить свой метод как

Private Sub Activate_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Activate.Click

потому что событие нажатия кнопки принимает только два аргумента.

Если вы хотите использовать переменную intIDToChange, предоставьте это как переменную уровня класса, такую ​​как

private intIDToChange as Integer и обновить его в Activate_Click,

Похоже, обработчик событий, который вы объявили там (Activate_Click), не соответствует определению события для ActivateClick.

Попробуйте перейти на:

Private Sub Activate_Click(ByVal intIDToChange As Integer, ....) Handles Activate.Click

ByVal отправляет значение переменной через параметр, тогда как ByRef отправляет переменную (то есть изменения, внесенные в подпрограмму, влияют на переменную вызывающих подпрограмм).

Более подробный ответ здесь: http://social.msdn.microsoft.com/Forums/en-US/vbgeneral/thread/07b9d3b9-5658-49ed-9218-005564e8209e/

Другие вопросы по тегам