我有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'
我做错了什么?
答案 0 :(得分:4)
(char)34+(char)34
是int
,其值为68
该函数需要一个字符串。
我会通过"\"\""
(用反斜杠转义每个双引号)
ReplaceTextInFile(file, file + "new", "\"\"", "\"");
答案 1 :(得分:4)
我会使用ReplaceTextInFile(file, file + "new", "\"\"", "\"");
答案 2 :(得分:2)
您使用Int32
(char + char
== int
)和Char
而不是两个string
来调用此方法。为什么不直接使用?:
ReplaceTextInFile(file, file + "new", "\"\"", "\"");
答案 3 :(得分:1)
该函数需要四个string
个。您传递两个string
,然后传递int
,然后传递char
。
在char
中添加两个int
s会产生结果。您无法连接字符,因为char
代表个别字符,所以没有任何意义,因此结果为int
。
最后一个是char
的直接投射,其中string
是预期的,这看起来很明显。