Я бы посоветовал вам использовать дизайн, предложенный мистером Разочарование.
Однако, если по какой-либо причине вы хотите сохранить первоначальную идею, я бы внес небольшое изменение. Вместо того, чтобы передавать режим в виде строки, передайте его как перечисление. На самом деле, вы можете связать предложение мистера Разочарование с этим. Например
public enum PrintMode
{
File,
Raw
}
public static void Print(string printData, PrintMode mode)
{
if(mode == PrintMode.Raw)
{
//Print the string itself
}
else if (mode == PrintMode.File)
{
//Print the document in the filepath
}
else
{
throw new ArgumentException("Invalid print mode specified");
}
}
public static void PrintString(string input)
{
Print(input, PrintMode.Raw);
}
public static void PrintFile(string input)
{
Print(input, PrintMode.File);
}
Ваша вторая идея - плохая идея, поскольку вы выполняете ненужные проверки файловой системы всякий раз, когда пользователь печатает необработанную строку. Что еще более важно, это, вероятно, вызовет исключение, так как при печати необработанной строки это не будет допустимым путем к файлу. Так что проверка Exists
, вероятно, взорвется.