|
分類:[C#]
Visual Studio 2017
お世話になります
処理が失敗したらfalseを返すメソッドが複数あります(Method1〜
private void button1_Click(object sender, EventArgs e)
{
bool isSuccessful;
isSuccessful = Method1();
isSuccessful = Method2();
}
各メソッドで失敗したときに何度か繰り返す処理を追加しました
private void button1_Click(object sender, EventArgs e)
{
bool isSuccessful;
isSuccessful = hogeMethod(Method1);
isSuccessful = hogeMethod(Method2);
}
private bool hogeMethod(Func<bool> hoge)
{
int redoCount = 0;
while (redoCount <= 1)
{
bool isSuccessful = hoge();
if (isSuccessful)
{
return true;
}
else
{
redoCount++;
//...失敗の原因を取り除く処理(原因は画像解析)
}
}
return false;
}
文字列を引数に持つMethod3というのもあります。
isSuccessful = Method3("ほげほげ")
変更後は以下のようになりました。
isSuccessful = hogeMethod(Method3, "ほげほげ");
private bool hogeMethod(Func<string, bool> hoge, string s)
{
int redoCount = 0;
while (redoCount <= 1)
{
bool isSuccessful = hoge(s);
if (isSuccessful)
{
return true;
}
else
{
redoCount++;
//...失敗の原因を取り除く処理(原因は画像解析)
}
}
return false;
}
このやり方だと引数の数が変わる度にほぼ同じ処理が今後も増えていくことになります。
hogeMethodの記述が一ヶ所で済むような方法はないでしょうか。
すべてのメソッドの戻り値はboolのみです
よろしくお願いします
|