前端代码(.ascx或.aspx)中的字符串连接?

时间:2014-06-05 16:57:21

标签: c# asp.net string

有没有理由使用其中一种技术而不是另一种?

背后的代码中创建 多个字符串

protected string String1;
protected string String2;
protected string String3;
protected string String4;

它们在前端代码中使用,可以使用打印到

<%#String1%><%#String2%><%#String3%><%#String4%>

可以使用

打印这些内容
<%#String1 + String2 + String3 + String4%>

第二种技术似乎有点更容易阅读。根据{{​​1}}的评估方式与<#%%>的比较,这个想法突然出现在我脑海中的效率可能略低。

效率方面的差异是否优于另一方?

2 个答案:

答案 0 :(得分:1)

嗯,对于第二种情况,它会将该代码转换为对string.Concat的单个调用,这对于将4个C#字符串连接在一起的方法同样有效。

我不赞成ASP如何获取标记的每个组件并从内容中构建单个字符串,但我会惊讶地发现它使用了一种愚蠢的强连接方法,最终构建了一个中间体每次添加新组件时,都会对整个页面的HTML进行字符串和复制。我认为这是一个非常安全的选择,可以假设使用了一些合理合理的方法,很可能是StringBuilder,将内容写入流,或者有效地将一系列字符串附加在一起的其他类似方法。

答案 1 :(得分:0)

Asp.net引擎不会将以下字符串相互连接,它只渲染4次并将其放在html代码中

<%#String1%><%#String2%><%#String3%><%#String4%>

虽然下面的字符串将在服务器端连接并仅渲染1次。这绝对易于阅读和理解。

<%#String1 + String2 + String3 + String4%>