.Net 개발의 새로운 기능이며 일부 조언이 필요합니다.C# 및 .NET 언어 : C 매크로 대체 사용
몇 가지 예외를 발생시키는 코드가 있습니다. 이러한 예외는 데이터베이스가 다운 된 경우 발생합니다. 나는 사용자가 실패한 경우 실행 된 코드를 다시 시도 할 수있는 기능을 원합니다. 여기
내 초기 코드 :
나는 C-스타일 thinked (그러나 C#으로 어쨌든 일) 한 무엇executeRequest();
: 제대로 작동
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 –
젠장, 당신은 약 30 초 정도 나를 때려 :) –
매개 변수가있는 몇 가지 방법을 실행해야한다면, 당신은 이것을한다 : Execute (delegate {SomethingWithParam (param1, param2);}); –