ЯЗЫК ПРОГРАММИРОВАНИЯ С# 2005 И ПЛАТФОРМА .NET 2.0. 3-е издание
Шрифт:
Тип DateTime содержит данные, представляющие конкретные дату (месяц, день, год) и время, которые можно отформатировать различными способами с помощью соответствующих членов. В качестве простого примера рассмотрите следующий набор операторов.
Структура TimeSpan позволяет с легкостью определять и преобразовывать единицы времени с помощью различных ее членов, например:
На рис. 3.20 показан вывод операторов DateTime и TimeSpan.
Рис. 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.
Здесь мы создаем тип string, вызывающий методы Contains, Replace и Insert. Cоответствующий вывод показан на рис. 3.21.
Рис. 3.21. Базовые операции во строками
Вы должны учесть то, что хотя string и является ссылочным типом, операции равенства и неравенства (== и !=) предполагают сравнение значений со строковыми объектами, а не областей памяти, на которые они ссылаются. Поэтому следующее сравнение в результате дает true:
тогда как следующее сравнение возвратит false:
Для конкатенации существующих строк в новую строку, которая является объединением исходных, в C# предлагается операция +, как статический метод String.Concat. С учетом этого следующие операторы оказываются функционально эквивалентными.
Другой полезной возможностью, присущей типу string, является возможность выполнения цикла по всем отдельным символам строки с использованием синтаксиса, аналогичного синтаксису массивов. Формально говоря, объекты, поддерживающие доступ к своему содержимому, подобный по форме доступу к массивам, используют метод индексатора. О том, как строить индексаторы, вы узнаете из главы 9, но здесь для иллюстрации соответствующего понятия предлагается рассмотреть следующий фрагмент программного кода, в котором каждый символ строкового объекта s1 выводится на консоль.
В качестве альтернативы взаимодействию с индексатором типа можно использовать строковый класс в конструкции foreach. Ввиду того, что System.String поддерживает массив индивидуальных типов System.Char, следующий программный тоже выводит каждый символ si на консоль.
Управляющие последовательности
Как и в других языках, подобных C, строковые литералы в C# могут содержать различные управляющие последовательности, которые интерпретируются как определенный набор данных, предназначенных для отправки в выходной поток. Каждая управляющая последовательность начинается с обратной косой черты, за которой следует интерпретируемый знак. На тот случай, если вы подзабыли значения управляющих последовательностей, в табл. 3.13 предлагаются описания тех из них, которые используются чаще всего.