私は通常、拡張メソッドを非常に控えめに使用します。どうしても拡張メソッドを書かなければならないと感じたときは、メソッドをオーバーロードしたくなることがあります。私の質問は、他の拡張メソッドを呼び出す拡張メソッドについてどう思いますか? 悪い習慣?それは間違っているように感じますが、その理由を本当に定義することはできません.
たとえば、2 番目の CaselessIs メソッドは最初のメソッドを呼び出します。
public static bool CaselessIs(this string s, string compareTo)
{
return string.Compare(s, compareTo, true) == 0;
}
public static bool CaselessIs(this string s, IEnumerable<string> compareTo)
{
foreach(string comparison in compareTo)
{
if (s.CaselessIs(comparison))
{
return true;
}
}
return false;
}
これをしない方が適切でしょうか?欠点は、DRY に違反していることです。
public static bool CaselessIs(this string s, string compareTo)
{
return string.Compare(s, compareTo, true) == 0;
}
public static bool CaselessIs(this string s, IEnumerable<string> compareTo)
{
foreach(string comparison in compareTo)
{
if (string.Compare(s, comparison, true) == 0)
{
return true;
}
}
return false;
}