C# c语言中的字符串连接#

C# c语言中的字符串连接#,c#,string-concatenation,C#,String Concatenation,我的一个页面在*.cs文件中使用jQuery,如下所示。但是我听说字符串连接会降低性能。我无法在页面(即*.aspx)中编写它,因为我使用的是UpdatePanel,它会删除所有客户端代码。还有其他替代方法吗?StringBuilder怎么样 代码位于MyTestPage.aspx.cs中,字符串使用+ // Function to be called by jQuery @"function ddlAssignCaseTo_SelectIndexChanged() { var valu

我的一个页面在*.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();
 }"

您可能会做得比使用更糟糕,因为正是出于这个原因而设计的。

在这种情况下,您应该使用
String.Format(“#{0}”,ddlsassigncaseto.ClientID)
,因为它在后台使用StringBuilder,但允许您保持代码简洁


您当然应该尝试避免为所有提供的答案串接字符串。

这是Javascript-您是否以某种方式在C#中构建了它

无论如何,如果没有在循环或其他内容中连接字符串,那么创建
StringBuilder
的开销是不值得的。我经常看到的一条经验法则是,当您拥有超过8x个concat时,可以更改为
StringBuilder
——但我看到更多的基准测试表明,它不仅仅是这个

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

string s = "string1" + "string2";
不慢于:

string s = "string1string2";

你有没有衡量过你的绩效问题?你有没有衡量过绩效?我打赌你不会注意到明显的区别。这是浏览器还是C代码中的问题?出于好奇,@符号在代码中做什么?除此之外,它看起来还不错——如果您试图摆脱.js端的字符串连接,那么我认为您在很大程度上是运气不佳。您可以做的一件事是使用一个代码隐藏方法,该方法根据客户机id返回jquery选择器,如果没有其他内容,它将使您的js更易于阅读和维护。@Adam Houldsworth-这正是我所想的。