Я работаю над рефакторингом довольно старого кода. У меня есть два метода, которые реализуют одинаковые логики c. Разница лишь в том, что один с параметром Out, а другой без него. Я знаю, почему мы используем, но есть ли способ, которым я могу объединить эти два в один.
public bool Read(string column1, string column2)
{
const int FIRST_COLUMN = 0;
const int SECOND_COLUMN = 1;
string line;
string[] columns;
char[] separator = { '\t' };
line = ReadLine();
columns = line.Split(separator);
if (columns.Length == 0)
{
column1 = null;
column2 = null;
return false;
}
else
{
column1 = columns[FIRST_COLUMN];
column2 = columns[SECOND_COLUMN];
return true;
}
}
public bool Read(out string column1, out string column2)
{
const int FIRST_COLUMN = 0;
const int SECOND_COLUMN = 1;
string line;
string[] columns;
char[] separator = { '\t' };
line = ReadLine();
if (line == null)
{
column1 = null;
column2 = null;
return false;
}
columns = line.Split(separator);
if (columns.Length == 0)
{
column1 = null;
column2 = null;
return false;
}
else
{
column1 = columns[FIRST_COLUMN];
column2 = columns[SECOND_COLUMN];
return true;
}
}
Можно ли как-нибудь записать это в один метод?