0
我的問題是這樣的。我有幾個功能:c#如何通過使用委託傳遞不同的功能到另一個功能
public List<FtpDirectoryEntry> ListDirectory();
public bool DirectoryExists(string dir);
public void UploadFile(string file);
public void UploadFiles(params string[] files);
我想編寫一個函數來運行這些函數5次。如果我們在5次得不到結果,它會拋出異常。
public void CheckFunctionWithTrials(function X)
{
for (int i = 0; i < 5; i++)
{
try
{
X;
break;
}
catch (Exception e)
{
if (i == 5 - 1)
{
throw e;
}
else
{
DLog.Warn("Failed to upload file. Retry #" + (i + 1) + ": " + path);
Thread.Sleep(1000);
}
}
}
}
問題是這些函數有不同的簽名,所以我不能將它們作爲使用委託的參數傳遞。有沒有一種方法或模式可以幫助我解決這個問題?
如果您甚至不知道他們採用了哪些參數,您希望如何調用其中一個函數? – DavidG
@DavidG我知道這行不通。但它可以幫助我解釋我想要做什麼。 –
雖然沒有任何意義。即使你通過它們,你會在'CheckFunctionWithTrials'方法中給它們什麼參數? – DavidG