在一本书上看到他写了这个方法,但是明显多用一个变量,谁知道他这样写有什么特别的作用?// Reverse a string.
static string Reverse(string s) {
string temp = "";
int i, j;
Console.WriteLine("Reversing string.");
for(j=0, i=s.Length-1; i >= 0; i--, j++)
temp += s[i];
return temp;
}
不用j也可以用呀??        // Reverse a string.
        static string Reverse(string s)
        {
            string temp = "";
            int i;
            Console.WriteLine("Reversing string.");
            for (i = s.Length - 1; i >= 0; i--)
                temp += s[i];
            return temp;
        }

解决方案 »

  1.   

    没有作用。
    如果将temp作为一个字符数组,可用
    temp[j] = s[i];
      

  2.   

    这样写说明他只学会了C#语法,完全不了解.NET该怎么用...ps:楼上两位没看仔细,字符串内含的字符数组是只读的...
      

  3.   

    本帖最后由 caozhy 于 2011-06-06 15:46:55 编辑
      

  4.   

    在C#中string的操作中,下面的操作是不行的:
    str[i] = '0';但下面的操作是可以的:
    str[i] += '0';
      

  5.   

    对不起,上面的代码错了在C#中string的操作中,下面的操作是不行的:
    str[i] = '0';但下面的操作是可以的:
    str += '0';
      

  6.   

    string的indexer只实现了get方法所以,根本不可行,何谈销率
    楼主,你给的这段代码我估计是删减的,可能某人删除代码的时候没有吧j删掉
      

  7.   

    static string Reverse(string s)
    {
        return new string(s.Reverse().ToArray());
    }
      

  8.   

    了解.NET的至少有三种简单的方法...
    char[] sa = s.ToCharArray();
    Array.Reverse(sa);
    return new string(sa);
    return new string(s.Reverse().ToArray());
    return Microsoft.VisualBasic.Strings.StrReverse(s);
    另外...没有对输入参数做null验证存在bug...