Я новичок в разработке .Net, и я ищу некоторые советы.C# и язык .NET: Замена использования C Macro
У меня есть часть кода, которая забрасывает некоторые исключения. Это исключение вызывается, например, если моя база данных не работает. Я хочу, чтобы пользователи имели возможность повторить выполненный код, если это не удалось.
Вот мой исходный код:
executeRequest();
Что я thinked в C-стиле (но работает так или иначе в C#):
do
{
try
{
executeRequest();
return;
}
catch (Exception exception)
{
ErrorMessagesUtils.ShowTaskErrorMessage(exception);
}
} while (MessageBox.Show("Failed : Retry ?", "Error",
MessageBoxButtons.YesNo,
MessageBoxIcon.Question) == DialogResult.Yes);
Это работает, но это действительно раздражает, чтобы воспроизвести его с другие методы. Я хочу использовать с executeRequest, но не только.
Если бы я был кодированием в C, я буду использовать #define ASK_USER_TO_RETRY(funcname) ...code...
. Но в C# я не нашел способ повторно использовать кусок кода таким образом. Некоторые мысли?
Я хотел бы сделать это таким же образом. Здесь вы можете узнать больше о делегатах (это как-то вроде указателя на метод в C): http://msdn.microsoft.com/en-us/library/ms173171(v=vs.80).aspx и после него вы можете читайте о лямбда-выражениях: http://msdn.microsoft.com/en-us/library/bb397687.aspx –
Черт побери, вы избили меня до тридцати секунд :) –
Кстати, если вам нужно выполнить какой-то метод с параметрами, вы делаете это: Выполнить (делегировать {SomethingWithParam (param1, param2);}); –