Студопедия

КАТЕГОРИИ:

АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Практическое руководство. Объединение нескольких строк (Руководство по программированию в C#)




Обновлен: Июль 2008

Объединение — это процесс добавления одной строки к концу другой. При объединении строковых литералов или строковых констант с помощью оператора + компилятор создает одну строку. Объединение среды выполнения не происходит. Однако строковые переменные могут быть объединены только во время выполнения. В таком случае следует уяснить влияние различных подходов на производительность.

Пример

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

Язык C#

 

Копировать код

static void Main()

{

// Concatenation of literals is performed at compile time, not run time.

string text = @"Historically, the world of data and the world of objects " +

"have not been well integrated. Programmers work in C# or Visual Basic " +

"and also in SQL or XQuery. On the one side are concepts such as classes, " +

"objects, fields, inheritance, and .NET Framework APIs. On the other side " +

"are tables, columns, rows, nodes, and separate languages for dealing with " +

"them. Data types often require translation between the two worlds; there are " +

"different standard functions. Because the object world has no notion of query, a " +

"query can only be represented as a string without compile-time type checking or " +

"IntelliSense support in the IDE. Transferring data from SQL tables or XML trees to " +

"objects in memory is often tedious and error-prone.";

 

Console.WriteLine(text);

}

Для объединения строковых переменных можно использовать операторы + или += или методы String..::.Concat, String..::.Format или StringBuilder..::.Append. Оператор + удобен в использовании и позволяет сформировать наглядный код, но он работает последовательно: при каждом использовании оператора создается новая строка. Поэтому создание цепочки из нескольких операторов неэффективно. Например, рассмотрим следующий код:

Язык C#

 

Копировать код

static void Main(string[] args)

{

// To run this program, provide a command line string.

// In Visual Studio, see Project > Properties > Debug.

string userName = args[0];

string date = DateTime.Today.ToShortDateString();

 

// Use the + and += operators for one-time concatenations.

string str = "Hello " + userName + ". Today is " + date + ".";

System.Console.WriteLine(str);

 

str += " How are you today?";

System.Console.WriteLine(str);

 

// Keep the console window open in debug mode.

Console.WriteLine("Press any key to exit.");

Console.ReadKey();

}

 

// Example output:

// Hello Alexander. Today is 1/22/2008.

// Hello Alexander. Today is 1/22/2008. How are you today?

// Press any key to exit.

//

Примечание.
В операциях объединения строк компилятор С# обрабатывает нулевую строку так же, как пустую строку, но не преобразовывает значение исходной нулевой строки.

Если не выполняется объединения большого количества строк (например, в цикле), то снижение производительности этого кода, вероятно, будет незначительным. Это также относится к методам String..::.Concat и String..::.Format.

Однако, если самым важным является производительность, то для объединения строк всегда следует использовать класс StringBuilder. В следующем коде используется метод Append класса StringBuilder для объединения строк без "эффекта цепочки" оператора +.

 










Последнее изменение этой страницы: 2018-06-01; просмотров: 195.

stydopedya.ru не претендует на авторское право материалов, которые вылажены, но предоставляет бесплатный доступ к ним. В случае нарушения авторского права или персональных данных напишите сюда...