C# 4.0은 메소드에서 기본 매개 변수를 허용하여 매우 유용하고 유용한 것을 도입했습니다. 그러나 C# 3.0은 그렇지 않습니다. 따라서 "기본 매개 변수"를 시뮬레이트하려면 해당 인수 중 하나와 인수가없는 두 개의 메소드를 만들어야합니다. 내가 할 수있는 두 가지 방법이있다.기본 매개 변수의 이러한 모의 시뮬레이션간에 중요한 기계적 차이가 있습니까?
버전 A - 다른 방법
public string CutBetween(string str, string left, string right, bool inclusive)
{
return str.CutAfter(left, inclusive).CutBefore(right, inclusive);
}
public string CutBetween(string str, string left, string right)
{
return CutBetween(str, left, right, false);
}
버전 B 전화 - 복사 메소드 본문
public string CutBetween(string str, string left, string right, bool inclusive)
{
return str.CutAfter(left, inclusive).CutBefore(right, inclusive);
}
public string CutBetween(string str, string left, string right)
{
return str.CutAfter(left, false).CutBefore(right, false);
}
이들 사이의 진정한 차이가 있습니까? 이것은 최적화 나 리소스 사용 또는 어떤 것에 관한 질문이 아닙니다. (일부는 일관성을 유지하려는 일반적인 목표이지만) 한 가지 방법이나 다른 방법을 선택하는 데 중요한 영향을 미치지는 않는다고 생각합니다. 그러나 이 문제에 관해서는 현혹보다는 잘못 생각하는 것이 현명하다.
오, 유지 관리에 대한 좋은 점. 첫 번째 방법을 사용한다는 것은 한 지점에서 일을 변경해야한다는 것을 의미합니다. 스택에있는 하나의 추가 메소드는 낭비되는 시간의 큰 가능성만큼 큰 상처를주지는 않습니다. –