1

我有 2 个双引号需要用一个双引号替换。

我正在使用这种方法:

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

您使用Int32( char + char== int) 和 a调用此方法Char,而不是两个string值。为什么不直接使用?:

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

该函数需要四个strings。您传递两个strings,然后传递一个int,然后传递一个char

添加两个chars 导致int. 你不能连接字符,因为 achar代表一个单独的字符是没有意义的,所以结果是int.

char最后一个是直接投射到string预期的位置,这似乎很明显。

于 2012-05-16T22:29:52.853 回答