저는 대개 확장 메서드를 사용하지 않습니다. 확장 메서드를 작성해야한다고 생각할 때 때때로 메서드를 오버로드하려고합니다. 내 질문은 다른 확장 메서드를 호출하는 확장 메서드에 대한 생각은 무엇입니까? 나쁜 연습? 그것은 잘못된 생각이지만, 나는 왜 그 이유를 정의 할 수 없습니다.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"로 바꾸는 것이 좋습니다. –
또한이 질문의 제목을 조금 더 구체적으로 바꾸고 싶을 수 있습니다. –