读取文件的差异
本文关键字:文件 读取 | 更新日期: 2023-09-27 18:09:49
string value1 = File.ReadAllText("C:''file.txt");
string value2 = File.ReadAllText(@"C:'file.txt");
在上面的语句中,使用@"C:''file.txt">和C:''file的区别是什么时候.txt
将按原样读取@"C:''file.txt"。删除逐字 (@( 将使其将">''f">视为单个转义字符(表单源(。换句话说:
@"C:'file.txt" == "C:''file.txt"
@"C:'file.txt" != "C:'file.txt" // treated as C: + FormFeed + ile.txt
逐字字符串文本以 @ 开头,也括在双精度中 引号。例如:
@"good morning" // a string literal
逐字字符串的优点是转义序列不是 处理,这使得编写变得容易,例如,一个完整的 限定文件名:
@"c:'Docs'Source'a.txt" // rather than "c:''Docs''Source''a.txt"
字符串:
常规字符串文本由零个或多个字符组成 在双引号中,如"hello",并且可能包括两个简单转义 序列(例如 ''t 表示制表符(和十六进制和 Unicode 转义序列。
逐字字符串文本由一个 @ 字符后跟一个 双引号字符、零个或多个字符和一个结束字符 双引号字符。一个简单的例子是@"hello"。逐字记录 字符串文字,解释分隔符之间的字符 逐字逐句,唯一的例外是引号-转义-序列。在 特殊的简单转义序列以及十六进制和 Unicode 转义 序列不会在逐字字符串文本中处理。逐字记录 字符串文本可以跨越多行。
在字符串中使用'
时,通常必须使用 ''
,因为'
是转义字符。 实际上,你显示的第一个字符串(File.ReadAllText("C:'file.txt");
(应该抛出编译错误。
该@
将允许您在每次需要'
时都不使用''
来构建字符串。
string value1 = "C:'file.txt";
string value2 = @"C:'file.txt";
value1 的字符串将包含一个 ''f 所在的表单馈送字符,而第二个字符串将保留反斜杠和 f。 (如果您尝试使用 Console.Write 在控制台应用程序中输出它们,这一点会变得非常清楚...(
value1 版本的正确方法是"C:''file.txt"
(正如德米特里所说,value2 版本使用所谓的逐字字符串(