由于返回类型不能用于消除方法的歧义,当您想要更改的只是返回类型时,重载方法的最干净/最好的方法是什么?下面是一些示例代码;
public static string Get(string url, Guid id, bool logResponse = true, bool baseKey = false)
{
Tuple<string, int> response = Get(url, id, true, logResponse, baseKey);
if (response.Item2 > 399)
return null;
return response.Item1;
}
public static Tuple<string, int> Get(string url, Guid id, bool returnStatus, bool logResponse = true, bool baseKey = false)
{
// leaving out lots of code in this method, you should be able to get the point without it
int http_status;
string response = CallApi(url, key, "GET", out http_status);
return new Tuple<string, int>(response, http_status);
}
上面的代码有效,但是我有一个额外的参数( returnStatus )没有任何作用,它只是在那里,所以编译器可以区分这两种方法。有没有更好的方法来做到这一点,或者我只是坚持添加无用的参数?