Метод, выполняющий сцепление строк, называется Concat()
. Ниже приведена одна из самых распространенных его форм.
public static string Concat(string str0, string str1)
Этот метод возвращает строку, состоящую из строки str1 , присоединяемой путем сцепления в конце строки str0. Ниже приведена еще одна форма метода Concat()
, в которой сцепляются три строки.
public static string Concat(string str0, string str1,string str2)
В данной форме метод Concat()
возвращает строку, состоящую из последовательно сцепленных строк str0, str1 и str2.
Имеется также форма метода Concat()
, в которой сцепляются четыре строки.
public static string Concat(string str0, string str1, string str2, string str3)
В этой форме метод Concat()
возвращает строку, состоящую из четырех последовательно сцепленных строк.
А в приведенной ниже еще одной форме метода Соncat()
сцепляется произвольное количество строк:
public static string Concat(params string[] values)
где values обозначает переменное количество аргументов, сцепляемых для получения возвращаемого результата. Если в этой форме метода Concat()
допускается сцепление произвольного количества строк, то зачем нужны все остальные его формы? Они существуют ради повышения эффективности. Ведь передача методу от одного до четырех аргументов оказывается намного эффективнее, чем использование для этой цели переменного списка аргументов.
В приведенном ниже примере программы демонстрируется применение метода Concat()
в форме с переменным списком аргументов.
// Продемонстрировать применение метода Concat().
using System;
class ConcatDemo {
static void Main() {
string result = String.Concat("Это ", "тест ", "метода ",
"сцепления ", "строк ",
"из класса ", "String." );
Console.WriteLine("Результат: " + result);
}
}
Эта программа дает следующий результат.
Результат: Это тест метода сцепления строк из класса String.
Кроме того, существуют варианты метода Concat()
, в которых он принимает в качестве параметров ссылки на объекты, а не на строки. В этих вариантах метод Concat()
получает строковые представления вызывающих объектов, а возвращает объединенную строку, сцепленную из этих представлений. (Строковые представления объектов получаются с помощью метода ToString()
, вызываемого для этих объектов.) Ниже приведены все подобные варианты и формы метода Concat()
.
public static string Concat(object arg0)
public static string Concat(object arg0, object arg1)
public static string Concat(object arg0, object arg1, object arg2)
public static string Concat(object arg0, object arg1, object arg2, object arg3)
public static string Concat(params object[] args)
В первой форме метод Concat()
возвращает строку, эквивалентную объекту arg0, а в остальных формах — строку, получаемую в результате сцепления всех аргументов данного метода. Объектные формы метода Concat()
, т.е. относящиеся к типу object
, очень удобны, поскольку они исключают получение вручную строковых представлений объектов перед их сцеплением. В приведенном ниже примере программы наглядно демонстрируется польза от подобных форм метода Concat()
.
// Продемонстрировать применение объектной формы метода Concat().
using System;
class MyClass {
public static int Count = 0;
public MyClass() { Count++; }
}
class ConcatDemo {
static void Main() {
string result = String.Concat("значение равно " + 19);
Console.WriteLine("Результат: " + result);
result = String.Concat("привет ", 88, " ", 20.0,
" ", false, " ", 23.45M);
Console.WriteLine("Результат: " + result);
MyClass me = new MyClass();
result = String.Concat(me, " текущий счет равен ",
MyClass.Count);
Console.WriteLine("Результат: " + result);
}
}
Вот к какому результату приводит выполнение этой программы.
Результат: значение равно 19
Результат: привет 88 20 False 23.45
Результат: MyClass текущий счет равен 1
В данном примере метод Concat()
сцепляет строковые представления различных типов данных. Для каждого аргумента этого метода вызывается соответствующий метод ToString()
, с помощью которого получается строковое представление аргумента. Следовательно, в следующем вызове метода Concat()
:
Читать дальше