0
public void ShowOther(String input)
{
    char [] holder = input.ToCharArray();

    for (int i = 0; i < holder.Length; i++)
    {
        if (other.Contains(holder[i]))
        {
            holder.SetValue('^', i);
        }
        if (goodChars.Contains(holder[i]))
        {
            holder.SetValue(' ', i);
        }
        Console.Write(holder.GetValue(i));
    }
}

所以,现在我有这种方法。我想要做的是从这种方法中删除我的打印,同时保留char[]持有人的内容。

将返回类型更改为 achar[]然后将我的返回放在 for 循环之后工作吗?还是我偏离了轨道,可以做一些更简单的事情?

4

1 回答 1

0

是的,那会奏效。

public void ShowOther(string input)
{
    Console.Write(GetOther(input));
}

public char[] GetOther(String input)
{
    char [] holder = input.ToCharArray();

    for (int i = 0; i < holder.Length; i++)
    {
        if (other.Contains(holder[i]))
        {
            holder.SetValue('^', i);
        }
        if (goodChars.Contains(holder[i]))
        {
            holder.SetValue(' ', i);
        }
    }

    return holder;
}

我不确定你如何GetOther在不打印的情况下以有意义的方式使用,所以我不知道这种重构是否真的对你有用,但你可能比我更能判断这一点。

于 2013-01-26T20:46:28.477 回答