C# @转义字符的优缺点。

阿冷 2010-09-16 10:10:21
C#中字符串变量,加了转义字符的(例:string str = @”ab\”!c”),
中间能插入字符串变量吗?
一般:String sql = “Select a from table1 Where a = ‘” + para + ”’”;
不一般: String sql = @“Select a from table1 Where a = ‘” + para + ”’”;(可能多行)
...全文
725 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
threenewbee 2010-09-16
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 bclz_vs 的回复:]
可以插入字符串变量

C# code

String sql =String.Format(@“
SELECT a
FROM table1
WHERE a ='{0}'
AND b='{1}'
",para,para1);
[/Quote]

另外也不建议这样的写法,这种习惯很不好。应该使用参数化SQL。
threenewbee 2010-09-16
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 yitoushengkou 的回复:]
引用 4 楼 caozhy 的回复:
首先你要明白这是什么,干什么的。
第二,就是写足够多的程序,经常用。

这种问题就不用问了。

如同你天天吃饭,不必问筷子和勺子的优缺点,就算没有阅读过筷子的说明书,我想你也不会蠢到用筷子喝汤的吧。


问不问在我,你没权利限制我问。
2楼的答得挺好,一针见血。
就你这段,只看标题,不看内容的回答,和2星水平不副。
暴发户,怎么看都是没……
[/Quote]
看清了你的问题了,觉得问题比标题更低级。

如果这回没看错,你的意思是你担心用了 @,那么会丢失拼接字符串里面的转义字符。这说明你对编程语言基本概念都不清楚。

@"\" 的意思就是告诉编译器,这是一个反斜杠的字符。注意是编译器,编译器是什么估计你理解不深刻,它是将源代码翻译成目标代码的程序。注意这一点,目标程序里面只有这个反斜杠的字符(假设是一个字节,叫0x5c),而不管它是从"\\"来的,还是从@"\"来的。至于para里面的内容,运行的时候才能确定。假设里面也有个“\\”,它怎么会被编译器转换为单个“\”呢?

至于我说这个问题不要问,很明显,我不是说你不要问问题,而是接着前面的话,你理解了基本概念,这些问题自然就明白了,不需要问了。

初学者首先要把基本语言搞清楚,而不是去实现什么功能,这是我给你的一点建议。再次看了你的问题和几个回答,觉得这一点我没有说错。

最后,“符”也被你写错了。别人有没有文化和你关系不大。做好自己的事情吧。
阿冷 2010-09-16
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 caozhy 的回复:]
首先你要明白这是什么,干什么的。
第二,就是写足够多的程序,经常用。

这种问题就不用问了。

如同你天天吃饭,不必问筷子和勺子的优缺点,就算没有阅读过筷子的说明书,我想你也不会蠢到用筷子喝汤的吧。
[/Quote]

问不问在我,你没权利限制我问。
2楼的答得挺好,一针见血。
就你这段,只看标题,不看内容的回答,和2星水平不副。
暴发户,怎么看都是没文化,光有钱没用。
threenewbee 2010-09-16
  • 打赏
  • 举报
回复
首先你要明白这是什么,干什么的。
第二,就是写足够多的程序,经常用。

这种问题就不用问了。

如同你天天吃饭,不必问筷子和勺子的优缺点,就算没有阅读过筷子的说明书,我想你也不会蠢到用筷子喝汤的吧。
边城的刀声 2010-09-16
  • 打赏
  • 举报
回复

String sql =String.Format(@"
SELECT a
FROM table1
WHERE a ='{0}'
AND b='{1}'
",para,para1);
边城的刀声 2010-09-16
  • 打赏
  • 举报
回复
可以插入字符串变量

String sql =String.Format(@“
SELECT a
FROM table1
WHERE a ='{0}'
AND b='{1}'
",para,para1);
兔子-顾问 2010-09-16
  • 打赏
  • 举报
回复
就是个简化写法。没什么优缺点。
如果你的字符串中有大量的\字符,而不是想用转义,那就写@来取消\转义字符。
边城的刀声 2010-09-16
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 caozhy 的回复:]

引用 2 楼 bclz_vs 的回复:
可以插入字符串变量

C# code

String sql =String.Format(@“
SELECT a
FROM table1
WHERE a ='{0}'
AND b='{1}'
",para,para1);


另外也不建议这样的写法,这种习惯很不好。应该使用参数化SQL。
[/Quote]
哈哈,是的,这里只是说明了下String.Format的使用。
threenewbee 2010-09-16
  • 打赏
  • 举报
回复
string queryString = "select a from table1 where a = @para";
SqlCommand cmd = new SqlCommand(queryString, conn);
cmd.Parameters.Add("@para", para);
SqlDataAdapter adapter = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
adapter.Fill(dt);
this.GridView1.DataSource = dt;
this.GridView1.DataBind();
兔子-顾问 2010-09-16
  • 打赏
  • 举报
回复
口吻变化的真快
阿冷 2010-09-16
  • 打赏
  • 举报
回复
〉另外也不建议这样的写法,这种习惯很不好。应该使用参数化SQL。
7楼的这位,说话就知道是个.net高手啊。
能给个参数化SQL的小例子吗?
内容概要:本文系统研究了构网型变流器的正负序阻抗解耦特性及其在弱电网环境下的稳定性表现,重点依托Matlab/Simulink仿真平台,构建了详细的阻抗数学模型,设计了解耦控制策略,并采用小信号扫频法进行频域辨识与稳定性验证。研究深入探讨了构网型变流器与传统跟网型逆变器在正负序阻抗特性上的本质差异,结合虚拟同步发电机(VSG)等先进控制技术,分析其在抑制宽频带振荡、削弱锁相环动态耦合等方面的优越性。文中不仅提供了完整的仿真模型与MATLAB代码实现,还整合了光伏、风电、储能、微电网等多类新能源系统的阻抗建模与稳定性分析资源,形成了一套面向新型电力系统稳定性的综合性技术资料体系,具有较强的科研复现与工程参考价值。; 适合人群:面向具备电力电子、电力系统自动化、新能源并网等专业背景的研究生、高校教师及工程技术人员,特别适用于从事阻抗建模、小干扰稳定性分析、宽频振荡机理研究以及撰写高水平学术论文的科研工作者。; 使用场景及目标:①掌握构网型变流器正负序阻抗建模与扫频辨识的仿真方法;②深入理解VSG等构网型控制在弱电网中提升稳定性的内在机理;③复现顶刊论文中的阻抗分析流程与稳定性判据应用;④利用提供的成熟模型与代码加速科研进程,支撑课题研究与学术成果产出。; 阅读建议:建议结合文中提供的Simulink模型与MATLAB代码,按照“理论建模—仿真搭建—扫频激励—频响提取—Nyquist判据分析”的完整流程进行实践操作,重点关注扫频信号的注入方式、频率范围设置及阻抗曲线的物理意义解读,并参考博士论文复现案例深化对复杂动态耦合问题的理解。

62,272

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧