// Продемонстрировать применение объектной формы метода 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()
:
string result = String.Concat("значение равно " + 19);
метод Int32.ToString()
вызывается для получения строкового представления целого значения 19, а затем метод Concat()
сцепляет строки и возвращает результат.
Обратите также внимание на применение объекта определяемого пользователем класса MyClass
в следующем вызове метода Concat()
.
result = String.Concat(me, " текущий счет равен ",
MyClass.Count);
В данном случае возвращается строковое представление объекта типа MyClass
, сцепленное с указываемой строкой. По умолчанию это просто имя класса. Но если переопределить метод ToString()
, то вместо строки с именем класса MyClass
может быть возвращена другая строка. В качестве упражнения попробуйте ввести в приведенный выше пример программы следующий фрагмент кода.
public override string ToString() {
return "Объект типа MyClass";
}
В этом случае последняя строка результата выполнения программы будет выглядеть так, как показано ниже.
Результат: Объект типа MyClass текущий счет равен 1
В версию 4.0 среды .NET Framework добавлены еще две формы метода Concat()
, приведенные ниже.
public static string Concat
public static string Concat(IEnumerable
В первой форме этого метода возвращается символьная строка, состоящая из сцепленных строковых представлений ряда значений, имеющихся в объекте, который обозначается параметром IEnumerable
. А во второй форме данного метода сцепляются строки, обозначаемые параметром StringBuilder
.)
В классе String
предоставляется немало методов для поиска в строке. С их помощью можно, например, искать в строке отдельный символ, строку, первое или последнее вхождение того и другого в строке. Следует, однако, иметь в виду, что поиск может осуществляться либо с учетом культурной среды либо порядковым способом.
Для обнаружения первого вхождения символа или подстроки в исходной строке служит метод IndexOf()
. Для него определено несколько перегружаемых форм. Ниже приведена одна из форм для поиска первого вхождения символа в исходной строке.
public int IndexOf(char value)
В этой форме метода IndexOf()
возвращается первое вхождение символа
Ниже приведены еще две формы метода IndexOf(), позволяющие искать первое вхождение одной строки в другой.
public int IndexOf(String value)