使用逐字字符串文字的C#设置

时间:2014-06-05 15:26:40

标签: c#

也许我没有看到或理解我读过的任何答案,但我在使用settings.Default.(mysetting)的逐字字符串文字(@)时遇到了麻烦。我正在尝试做类似

的事情
Directory.GetFiles(@Setting.Default.(mysetting),"*.txt"); 

并且似乎无法找到使其正常工作的正确语法。

4 个答案:

答案 0 :(得分:2)

@标识一个字符串常量文字,其中反斜杠不应被解释为转义符号。您在此处尝试时无法在方法调用前使用它。

有效的作业可能是

 string path = @"c:\temp\example.txt";

通常将\ t解释为制表符,从而使文件引用非法。它与

完全相同
string path = "c:\\temp\\example.txt" ;

但是更容易阅读。

答案 1 :(得分:1)

@逐字字符串与字符串文字一起使用。所以你的代码应该是:

Directory.GetFiles(Setting.Default.(mysetting),@"*.txt");

因为"*.txt"是代码中的字符串文字。

(虽然不相关,但您可以将@与变量名称一起使用,请参阅C# Variable Naming and the @ Symbol

答案 2 :(得分:1)

要使用@作为逐字字符串文字的一部分,字符串文字必须就在那里 - 而不仅仅是返回字符串的属性,方法等。

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

答案 3 :(得分:0)

除非我遗漏它,否则你仍然需要将字符串包装在引号内。