Конкатенация строк в c # - PullRequest
       1

Конкатенация строк в c #

0 голосов
/ 02 августа 2011

Одна из моих страниц использует jQuery в файле * .cs следующим образом.Но я слышал, что конкатенация строк снизит производительность.Я не могу написать это на странице (то есть в * .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 ]

2 голосов
/ 02 августа 2011

Это Javascript - вы создаете это как-то в C #?

В любом случае, если вы не объединяете строку в цикле или что-то еще, тогда затраты на создание StringBuilder не стоят того. Практическое правило, которое я часто цитировал, состоит в том, чтобы изменить значение на StringBuilder, если у вас более восьмикратных конкатов, но я видел больше тестов, которые предполагают, что оно больше, чем это.

Помните, что встроенные конкатенации все равно будут оптимизированы:

string s = "string1" + "string2";

Не медленнее, чем:

string s = "string1string2";
1 голос
/ 02 августа 2011

В этом случае вы должны использовать String.Format("#{0}", ddlAssignCaseTo.ClientID), так как он использует StringBuilder под капотом, но позволяет сохранить ваш код сжатым.

Вам, безусловно, следует избегать объединения строк для всех предоставленных ответов.

0 голосов
/ 02 августа 2011

Вы можете сделать хуже, чем использовать StringBuilder, который разработан именно по этой причине.

...