Я обычно очень редко использую методы расширения. Когда я чувствую необходимость написать метод расширения, я иногда хочу перегружать метод. Мой вопрос: что вы думаете о методах расширения, вызывающих другие методы расширения? Плохая практика? Это неправильно, но я не могу понять, почему.
Например, второй метод 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;
}
Было бы более уместно не делать этого? Недостатком было бы то, что это нарушает СУХОЙ.
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;
}