Не уверен, как вы попали в этот рассол, вы, похоже, предполагаете, что возвращение строки из обработчика событий CheckedChanged полезно.В проекте не предусматривалось такое использование, объявление для обработчика события RadioButton.CheckedChanged:
public event EventHandler CheckedChanged;
, что делает объявление типа делегата EventHandler соответствующим:
public delegate void EventHandler(object sender, EventArgs e);
Который точно определяет как должен выглядеть ваш обработчик событий.Он имеет в качестве метода, который возвращает void и принимает два аргумента: один тип object и один тип EventArgs .Вот что вы получите, если дважды щелкнуть переключатель в конструкторе:
private void radioButton1_CheckedChanged(object sender, EventArgs e) {
}
Обратите внимание, как автоматически сгенерированный метод точно соответствует сигнатуре типа делегата.Компилятор счастлив. не понравится *1020*, если вы измените подпись своего обработчика событий.Код Winforms был предварительно запрограммирован для вызова вашего обработчика событий CheckedChanged, и он надеется, что вы реализовали способ, которым он был предварительно запрограммирован.Чего он не может сделать, так это иметь дело с другим типом возврата.Он не знает, что с этим делать.Что это , что оно должно с этим делать?Вы хотите войти?Хотите изменить свойство Text переключателя?Вы хотите отправить его через Интернет на другую машину?
Это, безусловно, возможно.Но вы должны написать этот код, Winforms не могут угадать для вас, для чего вы хотите его использовать.
Доллар на этом заканчивается, ваше время взять на себя ответственность.