编辑字符串时编译错误

时间:2014-02-28 01:00:22

标签: c# string compilation toupper

任何人都知道为什么它告诉我不能编辑chaine它只读?

public static string FormaterChainePascalOuMixte(String chaine)
    {
        for (int i = 0; i < chaine.Length; i++)
        {
            char xxx = char.ToUpper(chaine[i]);
            if (i != 0 && chaine[i] == xxx)
            {
                chaine[0] = char.ToLower(xxx);
            }
        }
    }

1 个答案:

答案 0 :(得分:0)

因为字符串是不可变的,所以在创建字符串对象后,不可能(不使用不安全的代码)修改字符串对象的值。但是,有许多方法可以修改字符串的值并将结果存储在新的字符串对象中。参考:here

您可以按如下方式更改代码:

public static string FormaterChainePascalOuMixte(String chaine)
    {
        if (String.IsNullOrEmpty(chaine))
            return null;

        char[] charArray = chaine.ToCharArray();

        for (int i = 0; i < charArray.Length; i++)
        {
            char xxx = char.ToUpper(charArray[i]);
            if (i != 0 && charArray[i] == xxx)
            {
                charArray[0] = char.ToLower(xxx);
            }
        }

        return charArray.ToString();
    }