繁体   English   中英

如何在C#中重用方法

[英]How to re-use a method in C#

因此,在下面的代码中,在最后一个方法中,我想重新使用第二个public static Valute GetValuteByDate(DateTime date, string valuteCharCode) ,但是我真的不明白要提供什么参数。 如您所见,我成功地在第二种方法中重用了第一种方法。 知道如何在第三种方法中重复使用第二种方法吗? 或者,也许您有一些有用的信息?

public static class Api
{
    public static ValCurs GetValCursByDate(DateTime date)
    {
        var client = new RestClient("http://bnm.md"); //request

        var request = new RestRequest("ro/official_exchange_rates/get_xml=1&date="+date.ToString(), Method.GET); //request

        var response = client.Execute<ValCurs>(request);//deserialization

        if (response.ErrorException != null) { return null; } //throw exception

        return response.Data;
    }

    public static Valute GetValuteByDate(DateTime date, string valuteCharCode)
    {
        var curs = GetValCursByDate(date);

        Valute valuteByDate = curs.FirstOrDefault(valute => valute.CharCode.Equals(valuteCharCode));

        return valuteByDate;
    }

    public static Valute GetMaxValuteByPeriod(DateTime startDate, DateTime endDate, string charCode)
    {
        var maxVal = GetValuteByDate(**?**);
    }
}
public static class Api
{
public static ValCurs GetValCursByDate(DateTime date)
{
    var client = new RestClient("http://bnm.md"); //request

    var request = new RestRequest("ro/official_exchange_rates/get_xml=1&date="+date.ToString(), Method.GET); //request

    var response = client.Execute<ValCurs>(request);//deserialization

    if (response.ErrorException != null) { return null; } //throw exception

    return response.Data;
}

public static Valute GetValuteByDate(DateTime date, string valuteCharCode)
{
    var curs = GetValCursByDate(date);

    Valute valuteByDate = curs.FirstOrDefault(valute => valute.CharCode.Equals(valuteCharCode));

    return valuteByDate;
}

public static Valute GetMaxValuteByPeriod(DateTime startDate, DateTime endDate, string charCode)
{
    var totalDays = (endDate-startDate).TotalDays;
    List<Valute> result = new List<Valute>(totalDays);
    for(int i = 0; i < totalDays; i++)
    {
         result.Add(GetValuteByDate(startDate.AddDays(i), charCode);
    }
    var maxVal = result.Max(p => p.<put here property>);

    return maxVal;
}
}

第三个似乎正在使用范围,因此您需要每天在该范围内调用第二个。

  for(var day = startDate; date<= endDate; day = day.AddDays(1))
    {
        Valute value = GetValuteByDate(date, valuteCharCode);
        //compare value to the max value and set if higher
    }

注意:我没有测试此代码,因此您可能不得不摆弄它

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM