c#中的字符串连接

时间:2011-08-02 09:53:55

标签: c# string-concatenation

我的一个页面在* .cs文件中使用jQuery,如下所示。但我听说字符串连接会降低性能。我无法在页面中写入它(即在* .aspx中),因为我使用的是UpdatePanel,它会消除所有客户端代码。还有其他替代方法吗? StringBuilder怎么样?

代码位于 MyTestPage.aspx.cs 中,字符串使用 +

连接
// Function to be called by jQuery
@"function ddlAssignCaseTo_SelectIndexChanged() {
    var value = $('#" + ddlAssignCaseTo.ClientID + @"').val();
    value == '1' ? $('#" + divAction.ClientID + @"').show() : $('#" + divAction.ClientID + @"').hide();
}

function ddlReviewedBy_SelectIndexChanged() {
     var value = $('#" + ddlReviewedBy.ClientID + @"').val();
     value == '0' 
         ? $('#" + divReviewee.ClientID + @"').hide() 
         : $('#" + divReviewee.ClientID + @"').show();
     value == '0' 
         ? $('#" + lblIn.ClientID + @"').hide() 
         : $('#" + lblIn.ClientID + @"').show();
 }"

3 个答案:

答案 0 :(得分:2)

这是Javascript - 你在C#中以某种方式构建它吗?

无论如何,如果你没有在循环中连接字符串,那么创建StringBuilder的开销是不值得的。我看到经常被引用的一个经验法则是当你有超过8倍的联合时改为StringBuilder - 但我看到更多的基准测试表明它不仅仅是这个。

请记住,无论如何都会优化内联连接:

string s = "string1" + "string2";

不慢于:

string s = "string1string2";

答案 1 :(得分:1)

在这种情况下,您应该使用String.Format("#{0}", ddlAssignCaseTo.ClientID),因为这会使用StringBuilder,但允许您保持代码简洁。

你当然应该尽量避免为所提供的所有答案连接字符串。

答案 2 :(得分:-1)

你可能比使用StringBuilder更糟糕的是因为这个原因而设计的。{/ p>