C# 如何连接两个方法
如果中间线不同,我如何连接这两种方法C# 如何连接两个方法,c#,C#,如果中间线不同,我如何连接这两种方法 public static WeekendElectricityReportResult CalculateWeekendElectricityReportResult(string dataFilPath) { string newFile = CopyFile(dataFilPath); GetOperationClient().GetWeeklyEleReport(newFile);
public static WeekendElectricityReportResult CalculateWeekendElectricityReportResult(string dataFilPath)
{
string newFile = CopyFile(dataFilPath);
GetOperationClient().GetWeeklyEleReport(newFile);
RemoveNotUsedFiles(dataFilPath, newFile);
return ReadCalculations<WeekendElectricityReportResult>(newFile);
}
public static WeekendGasReportResult CalculateWeekendGasReportResult(string dataFilPath)
{
string newFile = CopyFile(dataFilPath);
GetOperationClient().GetWeeklyGasReport(newFile);
RemoveNotUsedFiles(dataFilPath, newFile);
return ReadCalculations<WeekendGasReportResult>(newFile);
}
public static weekenelectricityreportresult calculateekendeelectricityreportresult(字符串dataFilPath)
{
字符串newFile=CopyFile(dataFilPath);
GetOperationClient().GetWeekYelerReport(新文件);
RemoveNotUsedFiles(dataFilPath,newFile);
返回ReadCalculations(newFile);
}
公共静态WeekendGasReportResult CalculateWekendGasReportResult(字符串dataFilPath)
{
字符串newFile=CopyFile(dataFilPath);
GetOperationClient().GetWeeklyGasReport(新文件);
RemoveNotUsedFiles(dataFilPath,newFile);
返回ReadCalculations(newFile);
}
如果我将它们连接到一个通用方法,如何区分使用GetWeeklyReport或GetWeeklyGasReport的中间方法?您将使用委托。由于您没有在中间函数中返回值,因此可以使用
操作
对象:
public static WeekendReportResult CalculateWeekendReportResult(string dataFilPath, Action<string> del)
{
string newFile = CopyFile(dataFilPath);
del(newFile);
RemoveNotUsedFiles(dataFilPath, newFile);
return ReadCalculations<WeekendGasReportResult>(newFile);
}
publicstaticweekendreportresult CalculateWeekendReportResult(stringdatafilpath,Action del)
{
字符串newFile=CopyFile(dataFilPath);
del(新文件);
RemoveNotUsedFiles(dataFilPath,newFile);
返回ReadCalculations(newFile);
}
然后您可以这样调用此方法:
Action<string> del = delegate(string file) {
GetOperationClient().GetWeeklyEleReport(file);
};
var eleReport = CalculateWeekendReportResult(file, del);
Action<string> del2 = delegate(string file) {
GetOperationClient().GetWeeklyGasReport(file);
};
var gasReport = CalculateWeekendReportResult(file, del2);
Action del=委托(字符串文件){
GetOperationClient().GetWeeklyelerReport(文件);
};
var eleReport=CalculateWeekendReportResult(文件,del);
Action del2=委托(字符串文件){
GetOperationClient().GetWeeklyGasReport(文件);
};
var gasReport=CalculateWeekendReportResult(文件,del2);
您将使用委托。由于您没有在中间函数中返回值,因此可以使用操作
对象:
public static WeekendReportResult CalculateWeekendReportResult(string dataFilPath, Action<string> del)
{
string newFile = CopyFile(dataFilPath);
del(newFile);
RemoveNotUsedFiles(dataFilPath, newFile);
return ReadCalculations<WeekendGasReportResult>(newFile);
}
publicstaticweekendreportresult CalculateWeekendReportResult(stringdatafilpath,Action del)
{
字符串newFile=CopyFile(dataFilPath);
del(新文件);
RemoveNotUsedFiles(dataFilPath,newFile);
返回ReadCalculations(newFile);
}
然后您可以这样调用此方法:
Action<string> del = delegate(string file) {
GetOperationClient().GetWeeklyEleReport(file);
};
var eleReport = CalculateWeekendReportResult(file, del);
Action<string> del2 = delegate(string file) {
GetOperationClient().GetWeeklyGasReport(file);
};
var gasReport = CalculateWeekendReportResult(file, del2);
Action del=委托(字符串文件){
GetOperationClient().GetWeeklyelerReport(文件);
};
var eleReport=CalculateWeekendReportResult(文件,del);
Action del2=委托(字符串文件){
GetOperationClient().GetWeeklyGasReport(文件);
};
var gasReport=CalculateWeekendReportResult(文件,del2);
您将使用委托。由于您没有在中间函数中返回值,因此可以使用操作
对象:
public static WeekendReportResult CalculateWeekendReportResult(string dataFilPath, Action<string> del)
{
string newFile = CopyFile(dataFilPath);
del(newFile);
RemoveNotUsedFiles(dataFilPath, newFile);
return ReadCalculations<WeekendGasReportResult>(newFile);
}
publicstaticweekendreportresult CalculateWeekendReportResult(stringdatafilpath,Action del)
{
字符串newFile=CopyFile(dataFilPath);
del(新文件);
RemoveNotUsedFiles(dataFilPath,newFile);
返回ReadCalculations(newFile);
}
然后您可以这样调用此方法:
Action<string> del = delegate(string file) {
GetOperationClient().GetWeeklyEleReport(file);
};
var eleReport = CalculateWeekendReportResult(file, del);
Action<string> del2 = delegate(string file) {
GetOperationClient().GetWeeklyGasReport(file);
};
var gasReport = CalculateWeekendReportResult(file, del2);
Action del=委托(字符串文件){
GetOperationClient().GetWeeklyelerReport(文件);
};
var eleReport=CalculateWeekendReportResult(文件,del);
Action del2=委托(字符串文件){
GetOperationClient().GetWeeklyGasReport(文件);
};
var gasReport=CalculateWeekendReportResult(文件,del2);
您将使用委托。由于您没有在中间函数中返回值,因此可以使用操作
对象:
public static WeekendReportResult CalculateWeekendReportResult(string dataFilPath, Action<string> del)
{
string newFile = CopyFile(dataFilPath);
del(newFile);
RemoveNotUsedFiles(dataFilPath, newFile);
return ReadCalculations<WeekendGasReportResult>(newFile);
}
publicstaticweekendreportresult CalculateWeekendReportResult(stringdatafilpath,Action del)
{
字符串newFile=CopyFile(dataFilPath);
del(新文件);
RemoveNotUsedFiles(dataFilPath,newFile);
返回ReadCalculations(newFile);
}
然后您可以这样调用此方法:
Action<string> del = delegate(string file) {
GetOperationClient().GetWeeklyEleReport(file);
};
var eleReport = CalculateWeekendReportResult(file, del);
Action<string> del2 = delegate(string file) {
GetOperationClient().GetWeeklyGasReport(file);
};
var gasReport = CalculateWeekendReportResult(file, del2);
Action del=委托(字符串文件){
GetOperationClient().GetWeeklyelerReport(文件);
};
var eleReport=CalculateWeekendReportResult(文件,del);
Action del2=委托(字符串文件){
GetOperationClient().GetWeeklyGasReport(文件);
};
var gasReport=CalculateWeekendReportResult(文件,del2);
公共静态T CalculateReportResult(字符串dataFilPath、动作getAct、函数readFunc)
{
字符串newFile=CopyFile(dataFilPath);
getAct(GetOperationClient(),newFile);
RemoveNotUsedFiles(dataFilPath,newFile);
返回readFunc(newFile);
}
然后你可以做:
public static WeekendElectricityReportResult CalculateWeekendElectricityReportResult(string dataFilPath)
{
return CalculateWeekendElectricityReportResult(dataFilPath, (client, path) => { client.GetWeeklyEleReport(path); }, file => ReadCalculations<WeekendElectricityReportResult>(file));
}
public static weekenelectricityreportresult calculateekendeelectricityreportresult(字符串dataFilPath)
{
返回CalculateWeekendElectricityReportResult(dataFilPath,(客户端,路径)=>{client.getWeekYelerReport(路径);},file=>ReadCalculations(文件));
}
公共静态T CalculateReportResult(字符串dataFilPath、动作getAct、函数readFunc)
{
字符串newFile=CopyFile(dataFilPath);
getAct(GetOperationClient(),newFile);
RemoveNotUsedFiles(dataFilPath,newFile);
返回readFunc(newFile);
}
然后你可以做:
public static WeekendElectricityReportResult CalculateWeekendElectricityReportResult(string dataFilPath)
{
return CalculateWeekendElectricityReportResult(dataFilPath, (client, path) => { client.GetWeeklyEleReport(path); }, file => ReadCalculations<WeekendElectricityReportResult>(file));
}
public static weekenelectricityreportresult calculateekendeelectricityreportresult(字符串dataFilPath)
{
返回CalculateWeekendElectricityReportResult(dataFilPath,(客户端,路径)=>{client.getWeekYelerReport(路径);},file=>ReadCalculations(文件));
}
公共静态T CalculateReportResult(字符串dataFilPath、动作getAct、函数readFunc)
{
字符串newFile=CopyFile(dataFilPath);
getAct(GetOperationClient(),newFile);
RemoveNotUsedFiles(dataFilPath,newFile);
返回readFunc(newFile);
}
然后你可以做:
public static WeekendElectricityReportResult CalculateWeekendElectricityReportResult(string dataFilPath)
{
return CalculateWeekendElectricityReportResult(dataFilPath, (client, path) => { client.GetWeeklyEleReport(path); }, file => ReadCalculations<WeekendElectricityReportResult>(file));
}
public static weekenelectricityreportresult calculateekendeelectricityreportresult(字符串dataFilPath)
{
返回CalculateWeekendElectricityReportResult(dataFilPath,(客户端,路径)=>{client.getWeekYelerReport(路径);},file=>ReadCalculations(文件));
}
公共静态T CalculateReportResult(字符串dataFilPath、动作getAct、函数readFunc)
{
字符串newFile=CopyFile(dataFilPath);
getAct(GetOperationClient(),newFile);
RemoveNotUsedFile(数据文件路径,新文件