戻り値の型を使用してメソッドを明確にすることはできないため、戻り値の型だけを変更したい場合にメソッドをオーバーロードする最もクリーンで最良の方法は何ですか? 以下はサンプルコードです。
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 ) があります。コンパイラーが 2 つのメソッドの違いを認識できるようにするためです。これを行うためのより良い方法はありますか、それとも役に立たないパラメーターを追加するだけですか?