假设我有2周类似的方法命名的GetFiles()和PutFiles()瘦身多种类似方法的合适方法是什么?
public static void GetFiles(string source, string dest)
{
using (Session session = new Session())
{
session.Open(sessionOptions);
TransferOptions transferOptions = new TransferOptions();
transferOptions.TransferMode = TransferMode.Binary;
TransferOperationResult transferResult;
////Different in here////
transferResult = session.GetFiles(source, dest, false, transferOptions);
transferResult.Check();
foreach (TransferEventArgs transfer in transferResult.Transfers)
{
Console.WriteLine("Transfer file from {0} to {1}", source, dest);
}
}
}
public static void PutFiles(string source, string dest)
{
using (Session session = new Session())
{
session.Open(sessionOptions);
TransferOptions transferOptions = new TransferOptions();
transferOptions.TransferMode = TransferMode.Binary;
TransferOperationResult transferResult;
////Different in here////
transferResult = session.PutFiles(source, dest, false, transferOptions);
transferResult.Check();
foreach (TransferEventArgs transfer in transferResult.Transfers)
{
Console.WriteLine("Transfer file from {0} to {1}", source, dest);
}
}
}
你可以看到他们是除了方法 我有考虑添加一个名为传输文件的新方法中调用不同的功能完全一样,其中接受一个参数来控制放文件的过程/获取文件
public static void TransferFile(string source, string dest, bool GetFile)
{
using (Session session = new Session())
{
session.Open(sessionOptions);
TransferOptions transferOptions = new TransferOptions();
transferOptions.TransferMode = TransferMode.Binary;
TransferOperationResult transferResult;
if(GetFile)
transferResult = session.GetFiles(source, dest, false, transferOptions);
else
transferResult = session.PutFiles(source, dest, false, transferOptions);
transferResult.Check();
foreach (TransferEventArgs transfer in transferResult.Transfers)
{
Console.WriteLine("Transfer file from {0} to {1}", source, dest);
}
}
}
但后来我发现,这不是一个最佳的解决方案,因为我不能处理超过2条件(获取文件&放文件)
你是什么意思,它不能处理超过2个条件? – 2014-09-11 03:22:06
如果我还有一个函数为 - transferResult = session.CompareFiles(source,dest,false,transferOptions); ,那么我将不得不将TransferFile(string source,string dest,bool GetFile)的参数更改为TransferFile(string source,string dest,int FileAction),这样我可以处理更多不同的过程 – 2014-09-11 03:23:37
但我不认为这个解决方案是很好所有 – 2014-09-11 03:26:34