c#设置与逐字字符串文字

本文关键字:字符串 文字 设置 | 更新日期: 2023-09-27 18:06:59

也许我没有看到或理解我读到的任何答案,但我在使用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#变量命名和@符号)

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

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

除非我错过了它,否则您仍然需要将字符串用引号括起来。