1、 用 @ 引起来的字符串以 @ 开头,并用双引号引起来。例如:
@"good morning" // a string literal
用 @ 引起来的优点在于换码序列“不”被处理,这样就可以轻松写出字符串,例如一个完全限定的文件名:
@"c:/Docs/Source/a.txt" // rather than "c://Docs//Source//a.txt"
若要在一个用 @ 引起来的字符串中包括一个双引号,请使用两对双引号:
@"""Ahoy!"" cried the captain." // "Ahoy!" cried the captain.
@ 符号的另一种用法是使用碰巧成为 C# 关键字的被引用的 (/reference) 标识符。有关更多信息,请参见 2.4.2 标识符。
2、
先看代码(以下代码使用在C#,环境ASP.NET):
protected
void
Page_Load(
object
sender, EventArgs e)
{
test1( " /a " );
test1( @" /a " );
test2( " /a " );
test2( @" /a " );
test3( " /a " );
test3( @" /a " );
test4( " /a " );
test4( @" /a " );
}
// 参数不带@ 输出不带@
public void test1( string str)
{
Response.Write( " test1:[ " + str + " ]
" );
}
// 参数不带@ 输出带@
public void test2( string str)
{
Response.Write( " test1:[ " + @str + " ]
" );
}
// 参数带@ 输出不带@
public void test3( string @str)
{
Response.Write( " test1:[ " + str + " ]
" );
}
// 参数带@ 输出带@
public void test4( string @str)
{
Response.Write( " test1:[ " + @str + " ]
" );
}
{
test1( " /a " );
test1( @" /a " );
test2( " /a " );
test2( @" /a " );
test3( " /a " );
test3( @" /a " );
test4( " /a " );
test4( @" /a " );
}
// 参数不带@ 输出不带@
public void test1( string str)
{
Response.Write( " test1:[ " + str + " ]
" );
}
// 参数不带@ 输出带@
public void test2( string str)
{
Response.Write( " test1:[ " + @str + " ]
" );
}
// 参数带@ 输出不带@
public void test3( string @str)
{
Response.Write( " test1:[ " + str + " ]
" );
}
// 参数带@ 输出带@
public void test4( string @str)
{
Response.Write( " test1:[ " + @str + " ]
" );
}
F5执行,猜猜什么结果!!嘿嘿~~
以下公布显示结果:
test1:[ ]
test1:[/a]
test1:[ ]
test1:[/a]
test1:[ ]
test1:[/a]
test1:[ ]
test1:[/a]
o(∩_∩)o...哈哈。
可以发现无论你后来给不给字串加@符号,都不管用了,只有在字符串产生的时候加@有效果!