我注意到这段代码:
FileInfo[] files =new DirectoryInfo(@"C:\").GetFiles();
Run Code Online (Sandbox Code Playgroud)
目的是@什么?还有其他用途吗?
Kon*_*kus 21
C#支持两种形式的字符串文字:常规字符串文字和逐字字符串文字.
甲常规字符串文字由包含在双引号零个或多个字符,如"你好",并且可以包括简单转义序列(如\ t表示制表符)和十六进制和Unicode转义序列.
甲逐字字符串由一个@字符后跟一个双引号字符,零个或多个字符,并且结束的双引号字符的.一个简单的例子就是@"你好".在逐字字符串文字中,分隔符之间的字符是逐字解释的,唯一的例外是quote-escape-sequence.特别是,简单的转义序列和十六进制和Unicode转义序列不会在逐字字符串文字中处理.逐字字符串文字可以跨越多行.
例1:
@"C:\Path\File.zip" == "C:\\Path\\File.zip"
// where
"C:\\Path\\File.zip" // regular string literal
@"C:\Path\File.zip" // verbatim string literal
Run Code Online (Sandbox Code Playgroud)
注意:在逐字字符串文字中,您应该转义双引号.
例2:
@"He said: ""Hello""" == "He said: \"Hello\""
Run Code Online (Sandbox Code Playgroud)
更多信息:
前缀"@"允许使用关键字作为标识符,这在与其他编程语言交互时很有用.字符@实际上不是标识符的一部分,因此标识符可能在其他语言中看作普通标识符,没有前缀.带有@前缀的标识符称为逐字标识符.允许使用@前缀作为非关键字的标识符,但强烈建议不要使用样式.
例:
class @class
{
public static void @static(bool @bool) {
if (@bool)
System.Console.WriteLine("true");
else
System.Console.WriteLine("false");
}
}
class Class1
{
static void M() {
cl\u0061ss.st\u0061tic(true);
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
641 次 |
| 最近记录: |