首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

简单有关问题! 关于取消转义"\"

2012-10-14 
简单问题! 关于取消转义\我知道字符串 比如 string x c:\123\123的输出结果是c:123123string x @

简单问题! 关于取消转义"\"
我知道字符串 比如 string x= "c:\123\123" 的输出结果是 "c:123123"
  string x = @"c:\123\123" 的输出结果是 "c:\123\123"

@可以对字符串使用,取消中间的转义符号 "\"的作用,但是现在的情况是,是变量的话怎么办?

 比如:一个函数,接收到一个路径的参数X,我把X赋给Y,Y的输出就会有问题,而又没办法对Y使用 @符号取消转义
 void function A(string x)
{
  y=x; //其输出结果就会是 "c:123123"
   
  //又不能用 y=@x;

}

高手们,有什么办法解决啊?????

[解决办法]
楼主有没有测试啊,估计是光凭想象的,

C# code
        private void button1_Click( object sender, EventArgs e )        {            AAA( @"abc\133\fadf\asdfs" );            AAA( System.IO.Directory.GetCurrentDirectory() );        }        private void AAA( string x )        {            MessageBox.Show( x );        }
[解决办法]
^_^ LS说的对 LZ是在是杞人忧天了...
[解决办法]
^_^
[解决办法]
LZ啊...
字符串的转义实在编译时做的.
你那个y=x已经实在运行时了.
是不会再转义的.
[解决办法]
...哦 LZ一开始说的不清楚....
string v = "c:\\\\123\\\\123"; 或者 @"c:\\123\\123"
把v传给mysql就可以了
[解决办法]
传到数据库是否编码了,否则不会转化。c:\123\123能保存到数据库

[解决办法]
探讨
首先,谢谢1楼,我换个方式说下我的具体问题!

我传到mysql的字符串形如:"c:\123\123"  保存结果是  "c:123123"
除非传"c:\\123\\123"      才能得到 " c:\123\123"

这说明在mysql下,又转义了一次

我单步调试时发现 变量的值比如是:"c:\\123\\123"

传到数据库那边就变成  "c:\123\123"  了

mysql 再加把力 就变成    "c:123123"

我的具体问题就是这么个,刚才在mysql 专区提问,他们说mysql中是会进行转义…

[解决办法]
你都说是mysql了 肯定是要编码的
就用这个办法
C# code
public static string MySqlSqlEncode(string sqlString){  //...  return sqlString.Replace(@"\",@"\\");} 

热点排行