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(数据文件路径,新文件