1

2つの二重引用符があり、1つの二重引用符に置き換える必要があります。

私はこの方法を使用しています:

private static void ReplaceTextInFile(string originalFile, string outputFile, string searchTerm, string replaceTerm)
{
    string tempLineValue;
    using (FileStream inputStream = File.OpenRead(originalFile))
    {
        using (StreamReader inputReader = new StreamReader(inputStream))
        {
            using (StreamWriter outputWriter = File.AppendText(outputFile))
            {
                while (null != (tempLineValue = inputReader.ReadLine()))
                {
                    outputWriter.WriteLine(tempLineValue.Replace(searchTerm, replaceTerm));
                }
            }
        }
    }
}

そしてそれをこのように呼ぶ

ReplaceTextInFile(file, file + "new", (char)34 + (char)34, (char)34);

私が得ているエラーは

Error   4   Argument '3': cannot convert from 'int' to 'string' 

and  Error  5   Argument '4': cannot convert from 'char' to 'string'    

私は何が間違っているのですか?

4

4 に答える 4

4

(char)34+(char)34は、int値68です。
関数は文字列を予期しています。

私は合格します"\"\""
(各二重引用符をバックスラッシュでエスケープします)

ReplaceTextInFile(file, file + "new", "\"\"", "\"");
于 2012-05-16T22:29:59.043 に答える
4

私が使用しますReplaceTextInFile(file, file + "new", "\"\"", "\"");

于 2012-05-16T22:30:21.223 に答える
2

このメソッドは、2つの値ではなく、 Int32char + char== int)とaを使用して呼び出しています。なぜ使用しないのですか?:Charstring

ReplaceTextInFile(file, file + "new", "\"\"", "\"");
于 2012-05-16T22:30:20.387 に答える
1

この関数は4秒を想定してstringいます。string2つのsを渡し、次に、を渡しint、次に。を渡しcharます。

char2つのsを追加すると、になりintます。文字を連結することはできません。aは個々のchar文字を表すため意味がないため、結果は。になります。int

最後のものは、charaが期待される場所へのストレートキャストでありstring、それは十分に明白なようです。

于 2012-05-16T22:29:52.853 に答える