C# 编辑字符串时发生编译错误

C# 编辑字符串时发生编译错误,c#,string,compilation,toupper,C#,String,Compilation,Toupper,有人知道为什么它告诉我不能编辑链接它是只读的吗 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] ==

有人知道为什么它告诉我不能编辑链接它是只读的吗

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);
            }
        }
    }
公共静态字符串格式chainepascaloumixte(字符串链)
{
对于(int i=0;i
因为字符串是不可变的,所以在创建字符串对象后(不使用不安全的代码)不可能修改该对象的值。但是,有许多方法可以修改字符串的值并将结果存储在新的字符串对象中。参考:

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

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();
    }
公共静态字符串格式chainepascaloumixte(字符串链)
{
if(String.IsNullOrEmpty(chaine))
返回null;
char[]charArray=chaine.ToCharArray();
for(int i=0;i
字符串是不可变的。您需要创建一个新字符串。