日期:2014-05-17  浏览次数:21124 次

String.Format @
问题:前边有 “@”和没有“@”区别是什么?

            textBox1.Text = String.Format(@"{0} -r 25 -f 1 -l 1 -i  {1} -o  {2} ",
                "pdf2imgPath", "sourcePath", "targetPath");

            textBox2.Text = String.Format("{0} -r 25 -f 1 -l 1 -i  {1} -o  {2} ",
                "pdf2imgPath", "sourcePath", "targetPath"); 

------解决方案--------------------
前面加@是忽略转义字符
------解决方案--------------------
@可以取消字符串的转义,看如下代码:
string s1 = @"c:\windows
d:\windows
""hello world""";
string s2 = "c:\\windows\r\n" +
"d:\\windows\r\n" +
"\"hello world\"";
都表示

c:\windows
d:\windows
"Hello world"
------解决方案--------------------
@在C#里面有2个作用。
1、取消转义
string s1 = @"c:\windows"
string s1 = "c:\\windows"   --这里不用@就需要两个斜线了

string s3 = @"aaaaa
bbbb
cccc";   --还可以把一个字符串折行

2、屏蔽关键字
我们要把object作为一个方法的参数名字,这样写肯定是错误的,因为object是一个关键字。

        public void test(string object)
        {
        }


加上@就对了:

        public void test(string @object)
        {
            
        }