Я обычно использую методы расширения очень экономно. Когда я чувствую себя вынужденным написать метод расширения, я иногда хочу перегрузить метод. Мой вопрос в том, что вы думаете о методах расширения, называющих другие методы расширения? Плохая практика? Это неправильно, но я не могу определить, почему.C# Расширения
Например, второй метод 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;
}
«CaselessIs» - не очень интуитивное имя функции. Я бы рекомендовал, возможно, изменить его на «CompareCaseless» – 2008-10-22 18:55:54