首页 > 解决方案 > 有出和无出的方法

问题描述

我正在重构相当旧的代码。我有两种实现完全相同逻辑的方法。唯一的区别是 - 一个带有 Out 参数,另一个没有它。我知道我们为什么要使用 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;
        }
    }

有什么办法可以把它写成一种方法吗?

标签: c#.netmethodsout

解决方案


推荐阅读