В 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);
}
Есть ли реальная разница между ними? Это не вопрос оптимизации или использования ресурсов или чего-либо еще (хотя моя общая цель - оставаться последовательной), я даже не думаю, что есть какой-то значительный эффект при выборе того или иного метода, но я нахожу это разумнее спросить об этих вещах, чем ошибочно предположить.