【发布时间】:2014-06-05 15:26:39
【问题描述】:
也许我没有看到或理解我阅读的任何答案,但我无法将逐字字符串文字 (@) 与 settings.Default.(mysetting) 一起使用。我正在尝试做类似的事情
Directory.GetFiles(@Setting.Default.(mysetting),"*.txt");
而且似乎找不到正确的语法来完成这项工作。
【问题讨论】:
标签: c#
也许我没有看到或理解我阅读的任何答案,但我无法将逐字字符串文字 (@) 与 settings.Default.(mysetting) 一起使用。我正在尝试做类似的事情
Directory.GetFiles(@Setting.Default.(mysetting),"*.txt");
而且似乎找不到正确的语法来完成这项工作。
【问题讨论】:
标签: c#
@ 标识一个字符串常量文字,其中反斜杠不应被解释为转义符号。正如您在此处尝试的那样,您不能在方法调用之前使用它。
一个有效的分配可能是
string path = @"c:\temp\example.txt";
通常 \t 会被解释为制表符,从而使文件引用非法。完全一样
string path = "c:\\temp\\example.txt" ;
但更容易阅读。
【讨论】:
@ 逐字字符串与字符串文字一起使用。所以你的代码应该是:
Directory.GetFiles(Setting.Default.(mysetting),@"*.txt");
因为"*.txt" 是您代码中的字符串文字。
(虽然不相关,但您可以使用@ 和变量名参见C# Variable Naming and the @ Symbol)
【讨论】:
要将@ 用作逐字字符串文字的一部分,字符串文字必须就在其中——而不仅仅是返回字符串的属性、方法等。
string myStr = @"I'm verbatim, I contain a literal \n";
string myStr2 = "I'm not\nI have a newline";
string myStr3 = @myStr2; // still contains a newline, not a literal "\n"
在标识符前面使用@ 允许您使用保留关键字作为标识符。例如:
string @if = "hello!"; // valid
它也适用于没有实际效果的非保留词。
string @myVar = "hello!"; // valid
string newVar = myVar; // can be referred to either way
【讨论】:
除非我遗漏了它,否则您仍然需要将字符串用引号括起来。
【讨论】: