Рис. 3.20. Использование типов DateTime и TimeSpan
Исходный код. Проект DataTypes размещен в подкаталоге, соответствующем главе 3.
Тип данных System.String
Ключевое слово string в C# является сокращенным обозначением типа System.String, предлагающего ряд членов, вполне ожидаемых от этого класса. В табл. 3.12 предлагаются описания некоторых (но, конечно же, не всех) таких членов.
Таблица 3.12. Некоторые члены System.String
Член | Описание |
---|---|
Length | Свойство, возвращающее длину текущей строки |
Contains() | Метод, применяемый для выяснения того, содержит ли текущий строковый объект данную строку |
Format() | Статический метод, применяемый для форматировании строковых литералов с использованием примитивов (числовых данных и других строк) и обозначений типа {0}, уже встречавшихся ранее в этой главе |
Insert() | Метод, используемый для получения копии текущей строки, содержащей добавляемые строковые данные |
PadLeft() PadRight() | Методы, возвращающие копии текущей строки, дополненные указанными данными в качестве заполнителя |
Remove() Replace() | Методы, используемые для получения копии строки с соответствующими модификациями (при удалении или замене символов) |
Substring() | Метод, возвращающий строку, которая представляет подстроку текущей строки |
ToCharArray() | Метод, возвращающий массив символов, из которых состоит текущая строка |
ToUpper() ToLower() | Методы, создающие копию данной строки, представленную символами в верхнем или, соответственно, нижнем регистре |
Базовые операции со строками
Для иллюстрации некоторых базовых операций со строками рассмотрим следующий метод Main().
static void Main(string[] args) {
Console.WriteLine("***** Забавы со строками *****");
string s = "Boy, this is taking a long time.";
Console.WriteLine("-› Содержит ли s 'oy'?: {0}", s.Contains("oy"));
Console.WriteLine("-› Содержит ли s 'Boy'?: {0}", s.Contains("Boy"));
Console.WriteLine(s.Replace('.', '!'));
Console.WriteLine.(s.Insert(0, "Boy O' "));
Console.ReadLine();
}
Здесь мы создаем тип string, вызывающий методы Contains(), Replace() и Insert(). Cоответствующий вывод показан на рис. 3.21.
Рис. 3.21. Базовые операции во строками
Вы должны учесть то, что хотя string и является ссылочным типом, операции равенства и неравенства (== и !=) предполагают сравнение
string s1 = "Hello";
string s2 = "Hello";
Console.WriteLine("s1 == s2: {0}", s1 == s2);
тогда как следующее сравнение возвратит false:
string s1 = "Hello";
string s2 = "World!";
Console.WriteLine("s1 == s2: {0}", s1 == s2);
Для конкатенации существующих строк в новую строку, которая является объединением исходных, в C# предлагается операция +, как статический метод String.Concat(). С учетом этого следующие операторы оказываются функционально эквивалентными.
// Конкатенация строк.
string newString = s + s1 + s2;
Console.WriteLine ("s + s1 + s2 = {0}", newString);
Console.WriteLine("string.Concat(s, s1, s2) = {0}", string.Concat(s, s1, s2));