Вам, ребята, нравится слишком много кода ...
for (var tryCount = 0; tryCount < 3; tryCount++)
if (test.RunTest())
break;
... о, я подумал о еще более короткой версии ... но она не такая чистая ...
for (var tryCount = 0; !test.RunTest() && tryCount < 3; tryCount++);
Если вы хотите повторно использовать что-то вроде этого ...
static bool RunTest(Func<bool> testCase, int maxRetry)
{
for (var tryCount = 0; tryCount < maxRetry; tryCount++)
if (testCase())
return true;
return false;
}
// usage
var testResult = RunTest(test.RunTest, 3);
// or even...
var testResult = RunTest(
{
try {
return test.RunTest();
} catch (Exception ex) {
Debug.WriteLine(ex);
return false;
}
}, 3);