Метод с и без - PullRequest
       85

Метод с и без

0 голосов
/ 12 апреля 2020

Я работаю над рефакторингом довольно старого кода. У меня есть два метода, которые реализуют одинаковые логики 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;
        }
    }

Можно ли как-нибудь записать это в один метод?

...