GOOGLE ADS

суббота, 30 апреля 2022 г.

Возврат содержимого Stringbuilder

Тривиально я знаю, но просто интересно

У меня есть переменная stringbuilder, содержимое которой я хочу вернуть, но если она пуста, я хочу вернуть «|», поэтому лучше всего использовать stringbuilder.tostring в операторе сравнения, например

 If lReturnStringBuilder.ToString = String.Empty Then
lReturnStringBuilder.Append("|")
End If
return lreturnStringBuilder.tostring

или лучше преобразовать его в строку и сравнить это, даже если это означает загрузку новой переменной и выделение строкового пространства для этого, например

Dim lString as string = lReturnStringBuilder.ToString
if lString = string.empty then
lstring = "|"
end if
return lString


Решение проблемы

Это своего рода микрооптимизация, о которой вам действительно не нужно беспокоиться. Тем не менее, я опубликую то, что я считаю наиболее элегантным (и эффективным) способом сделать это в любом случае:

Dim result = If(lReturnString.Length = 0, "|", lReturnString.ToString())

Это избавляет от ненужного преобразования пустого StringBuilder в строку (или последующего вызова Append, что определенно не требуется). Обратите внимание на использование встроенного оператора If (VB 9.0), который не оценивает оба оператора ни в одном случае, так как это языковая конструкция, а не функция (полностью эквивалентная обычному оператору If с присваиванием переменных).

Комментариев нет:

Отправить комментарий

Laravel Datatable addColumn returns ID of one record only

Я пытаюсь использовать Yajra Datatable для интеграции DataTable на свой веб-сайт. Я смог отобразить таблицу, но столкнулся с проблемой. В по...