
Объектно-ориентированное программирование.-6
.pdf6.ЗАКЛЮЧЕНИЕ
Ксожалению, объем курса не позволяет рассмотреть:
•Некоторые полезные возможности среды .NET и языка C# (в частности, работу с регулярными выражениями, лямбда-выражения, выражения за-
просов LINQ – Language-Integrated Query);
•Технологии разработки сетевых приложений – Active Server Page (ASP.NET приложения), web-службы, программирование сокетов и т.п.;
•Управление базами данных (включая технологию доступа к данным
ADO – Active Data Objects);
•Разработку оконных приложений (Window Forms, WPF) и технологию визуального программирования;
•Программирование графики (OpenGL, Direct3D, GDI+);
•Работу с интерфейсами COM (Component Object Model).
Сетевые технологии и технологии баз данных изучаются в рамках соответствующих дисциплин. Регулярные выражения, визуальное программирование и работа с мультимедиа изучаются в рамках дисциплины «Мульти- медиа-технологии».
Количество классов .NET настолько велико, что описать их все в рамках одной, сколь угодно объемной, книги не представляется возможным. Самое главное, что мы рассмотрели каркас .NET Framework, принципы объект- но-ориентированного программирования, базовые классы и один из языков
.NET – C#, а также научились пользоваться справочной системой MSDN.
Все разработчики .NET стараются проектировать свои классы так, чтобы ими было удобно пользоваться – классы располагаются в одном пространстве имен со схожими по функциональности классами. Сами классы и их члены имеют интуитивно понятные имена, а также хорошо документированы. Поэтому освоение новых компонентов облегчено настолько, насколько это возможно.
Будем надеяться, что и разработанные вами компоненты будут удовлетворять этим критериям.
441
СПИСОК ЛИТЕРАТУРЫ
1.Библиотека Microsoft Developer Network (MSDN). – http://msdn. microsoft.com/ru-ru/library.
2.Биллиг В.А. Основы программирования на C#. – Интернет Университет Информационных технологий (ИНТУИТ). – http://www.intuit.ru/ department/pl/csharp/.
3.Долженко А.И. Разработка Windows-приложений на языке C# 2005. – Интернет Университет Информационных технологий (ИНТУИТ). – http:// www.intuit.ru/department/se/devcsharp2005/.
4.Кариев Ч.А. Создание Windows-приложений на основе Visual C#. – Интернет Университет Информационных технологий (ИНТУИТ). – http:// www.intuit.ru/department/pl/visualcsharp/.
5.Марченко А.Л. Введение в программирование на C# 2.0. – Интернет Университет Информационных технологий (ИНТУИТ). – http://www. intuit.ru/department/pl/csharp20/.
6.Петцольд Ч. Программирование для Microsoft Windows на C#. – М.: Русская Редакция, 2002. – Том 1. – 576 с.
7.Петцольд Ч. Программирование для Microsoft Windows на C#. – М.: Русская Редакция, 2002. – Том 2. – 624 с.
8.Рихтер Дж. Программирование на платформе Microsoft .NET Framework. – М.: Русская Редакция, 2003. – 512 с.
9.Троелсен Э. C# и платформа .NET 3.0. – СПб: Питер, 2008. – 1456 с.
442
ПРИЛОЖЕНИЯ
Приложение А. Объекты для работы с датой и временем
Структура DateTime представляет текущее время, обычно выраженное как дата и время суток в диапазоне от 00:00:00 1 января 0001 года (н.э.) до
23:59:59 31 декабря 9999 года (н.э.).
Значения времени измеряются в 100-наносекундных единицах, называемых тактами, и точная дата представляется числом тактов с 00:00:00 1 января 0001 года н.э. Например, значение тактов, равное 31241376000000000L, представляет 00:00:00, пятницу 1 января 0100 года.
В таблице А.1 кратко рассмотрены основные открытые (public) члены структуры DateTime.
Табл. А.1 – Члены структуры DateTime
Член |
Владелец |
Описание |
|
|
|
|
|
|
|
|
|
|
Конструкторы |
|
|
|
|
|
|
|
|||
DateTime(...) |
|
Имеется большой набор кон- |
|||
|
|
структоров, |
инициализирующих |
||
|
|
структуру различными наборами |
|||
|
|
аргументов (см. справку MSDN) |
|||
|
|
|
|
|
|
|
Методы |
|
|
|
|
|
|
|
|||
static int |
|
Сравнивает два экземпляра объ- |
|||
Compare(DateTime t1, |
|
екта DateTime |
|
|
|
|
|
|
|
||
DateTime t2) |
|
|
|
|
|
|
|
|
|
|
|
int CompareTo(object |
IComparable |
Сравнивает |
значение |
даты |
и |
value) |
|
времени с другим объектом (см. |
|||
|
|
||||
|
|
п. 4.9.4) |
|
|
|
|
|
|
|
|
|
DateTime Add(TimeSpan |
|
Возвращает |
новый объект, |
до- |
|
value) |
|
бавляющий |
интервал |
времени |
|
|
|
||||
|
|
TimeSpan(1) к значению данного |
|||
|
|
экземпляра |
|
|
|
|
|
|
|
|
|
DateTime AddTicks(long |
|
Возвращает |
новый объект, |
до- |
|
value) |
|
бавляющий заданное число так- |
|||
|
|
||||
|
|
тов к значению данного экзем- |
|||
|
|
пляра |
|
|
|
|
|
|
|
|
|
|
443 |
|
|
|
|
DateTime |
|
То же для миллисекунд |
|
||
AddMilliseconds |
|
|
|
|
|
(double value) |
|
|
|
|
|
|
|
|
|
|
|
DateTime AddSeconds |
|
То же для секунд |
|
|
|
(double value) |
|
|
|
|
|
|
|
|
|
|
|
DateTime AddMinutes |
|
То же для минут |
|
|
|
(double value) |
|
|
|
|
|
|
|
|
|
|
|
DateTime AddHours |
|
То же для часов |
|
|
|
(double value) |
|
|
|
|
|
|
|
|
|
|
|
DateTime AddDays |
|
То же для дней |
|
|
|
(double value) |
|
|
|
|
|
|
|
|
|
|
|
DateTime AddMonths |
|
То же для месяцев |
|
|
|
(int months) |
|
|
|
|
|
|
|
|
|
|
|
DateTime AddYears (int |
|
То же для лет |
|
|
|
value) |
|
|
|
|
|
|
|
|
|
|
|
static int |
|
Возвращает |
число |
дней в ука- |
|
DaysInMonth(int year, |
|
занном месяце указанного года |
|||
int month) |
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
override bool |
Object |
Возвращает |
значение, |
указыва- |
|
Equals(object value) |
|
ющее, равен ли данный экзем- |
|||
|
|
||||
|
|
пляр заданному объекту |
|
||
|
|
|
|
|
|
static bool |
|
Возвращает |
значение, |
указыва- |
|
Equals(DateTime t1, |
|
ющее, равны ли два экземпляра |
|||
|
|
||||
DateTime t2) |
|
DateTime |
|
|
|
|
|
|
|
|
|
|
|
|
|||
Type GetType() |
Object |
Возвращает метакласс типа |
|||
|
|
|
|||
TypeCode GetTypeCode() |
IConvertible |
Возвращает TypeCode для класса |
|||
|
|
DateTime |
|
|
|
|
|
|
|||
static bool |
|
Возвращает сведения о том, яв- |
|||
IsLeapYear(int year) |
|
ляется ли указанный год висо- |
|||
|
|
||||
|
|
косным |
|
|
|
|
|
|
|
|
|
static DateTime |
|
Преобразовывают |
|
заданное |
|
Parse(...) |
|
строковое представление даты и |
|||
static DateTime |
|
||||
|
времени в |
его |
эквивалент |
||
ParseExact(...) |
|
||||
|
DateTime (см. § 3.2) |
|
|
||
static bool |
|
|
|
||
|
|
|
|
|
|
TryParse(...) |
|
|
|
|
|
static bool |
|
|
|
|
|
TryParseExact(...) |
|
|
|
|
|
|
|
|
|||
TimeSpan Subtract |
|
Находит интервал между двумя |
|||
|
|
|
|
|
|
|
444 |
|
|
|
|
(DateTime value) |
|
|
значениями даты и времени |
|
|
|
|
DateTime Subtract |
|
|
Вычитает из этого экземпляра |
(TimeSpan value) |
|
|
указанный интервал |
|
|
|
|
|
|
|
|
override string |
Object |
|
Преобразует значение текущего |
ToString() |
|
|
объекта DateTime в эквивалент- |
|
|
|
|
|
|
|
ное ему строковое представле- |
|
|
|
ние |
|
|
|
|
string ToString(string |
|
|
То же, но в указанном формате |
format) |
|
|
(см. § 3.2) |
|
|
|
|
|
|
|
|
string ToString |
IConvertible |
|
То же, но с использованием ука- |
(IFormatProvider |
|
|
занных сведений о форматиро- |
|
|
|
|
provider) |
|
|
вании, связанных с языком и ре- |
|
|
|
|
|
|
|
гиональными параметрами (см. |
|
|
|
п. 4.9.4) |
|
|
|
|
string ToString(string |
IFormattable |
|
То же (см. п. 4.9.4) |
format, |
|
|
|
IFormatProvider |
|
|
|
provider) |
|
|
|
|
|
|
|
DateTime |
|
|
Преобразует значение текущего |
ToUniversalTime() |
|
|
объекта DateTime во время UTC |
|
|
|
|
|
|
|
|
<тип> To<тип> |
IConvertible |
|
Преобразование в другие форма- |
(IFormatProvider |
|
|
ты (не все поддерживаются, см. |
|
|
|
|
provider) |
|
|
п. 4.9.4) |
|
|
|
|
|
|
|
|
|
Операторы |
|
|
|
|
|
|
static DateTime |
|
|
Прибавляет к дате и времени |
operator + (DateTime |
|
|
указанный временной интервал |
|
|
|
|
d, TimeSpan t) |
|
|
|
|
|
|
|
static bool operator |
|
|
Определяет, равны ли два задан- |
== (DateTime d1, |
|
|
ных экземпляра |
|
|
|
|
DateTime d2) |
|
|
|
|
|
|
|
static bool operator > |
|
|
Определяет, больше ли один эк- |
(DateTime t1, DateTime |
|
|
земпляр другого |
|
|
|
|
t2) |
|
|
|
|
|
|
|
static bool operator |
|
|
По аналогии |
>= (DateTime t1, |
|
|
|
DateTime t2) |
|
|
|
|
|
|
|
static bool operator |
|
|
По аналогии |
|
|
|
|
|
445 |
|
|
!= (DateTime d1, |
|
|
|
|
|
DateTime d2) |
|
|
|
|
|
|
|
|
|
|
|
static bool operator < |
|
По аналогии |
|
|
|
(DateTime t1, DateTime |
|
|
|
|
|
t2) |
|
|
|
|
|
|
|
|
|
|
|
static bool operator |
|
По аналогии |
|
|
|
<= (DateTime t1, |
|
|
|
|
|
DateTime t2) |
|
|
|
|
|
|
|
|
|||
static TimeSpan |
|
Находит интервал между двумя |
|||
operator - (DateTime |
|
значениями даты и времени |
|||
|
|
||||
d1, DateTime d2) |
|
|
|
|
|
|
|
|
|
|
|
static DateTime |
|
Вычитает |
из |
этого экземпляра |
|
operator - (DateTime |
|
указанный интервал |
|
||
|
|
|
|||
d, TimeSpan t) |
|
|
|
|
|
|
|
|
|
|
|
|
Поля |
|
|
|
|
|
|
|
|||
static readonly |
|
Представляет наибольшее значе- |
|||
DateTime MaxValue |
|
ние типа DateTime |
|
||
|
|
|
|||
|
|
|
|||
static readonly |
|
Представляет минимально допу- |
|||
DateTime MinValue |
|
стимое значение типа DateTime |
|||
|
|
||||
|
|
|
|
|
|
|
Свойства |
|
|
|
|
|
|
|
|||
DateTime Date |
|
Возвращает компоненту даты |
|||
|
|
|
|||
int Day |
|
Возвращает день месяца |
|||
|
|
|
|||
DayOfWeek DayOfWeek |
|
Возвращает день недели(2) |
|||
|
|
|
|
||
int DayOfYear |
|
Возвращает день года |
|
||
|
|
|
|||
int Hour |
|
Возвращает компонент часа |
|||
|
|
|
|||
DateTimeKind Kind |
|
Возвращает тип времени(3) |
|||
|
|
|
|||
int Millisecond |
|
Возвращает компонент миллисе- |
|||
|
|
кунд |
|
|
|
|
|
|
|||
int Minute |
|
Возвращает компонент минуты |
|||
|
|
|
|||
int Month |
|
Возвращает компонент месяца |
|||
|
|
|
|
|
|
static DateTime Now |
|
Возвращает |
объект |
DateTime, |
|
|
|
которому |
присвоены |
текущие |
|
|
|
дата и время |
|
|
|
|
|
|
|||
int Second |
|
Возвращает компонент секунды |
|||
|
|
|
|||
long Ticks |
|
Возвращает число тактов |
|||
|
|
|
|
||
TimeSpan TimeOfDay |
|
Возвращает время дня |
|
||
|
|
|
|||
static DateTime Today |
|
Возвращает текущую дату |
|||
|
|
|
|
|
|
|
446 |
|
|
|
|
static DateTime UtcNow |
|
Возвращает объект |
DateTime, |
|
|
которому присвоены |
текущие |
|
|
дата и время UTC(4) |
|
int Year |
|
Возвращает компонент года |
|
|
|
|
|
Примечания:
(1)TimeSpan – структура, представляет интервал времени. Содержит не меньший набор членов, чем структура DateTime. Подробности можно узнать
всправочной системе.
(2)DayOfWeek – перечисление дней недели, может принимать следую-
щие значения: Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday.
(3)DateTimeKind – перечисление типов представления времени, может принимать следующие значения:
• Unspecified – Представленное время не определено ни как местное, ни как время UTC;
• Utc – Представленное время является временем UTC;
• Local – Представленное время является местным.
(4)UTC (Universal Time Coordinated) – всемирное координированное время. См. http://ru.wikipedia.org/wiki/UTC.
447
Приложение Б. Объекты для работы со строками
Основные открытые (public) члены класса System.String представлены в таблице Б.1.
Табл. Б.1 – Члены класса String
Член |
Владелец |
Описание |
|
|
||
|
|
|
|
|
|
|
|
Конструкторы |
|
|
|
|
|
|
|
|
||||
String(...) |
|
Ряд конструкторов для со- |
||||
|
|
здания строки из |
массивов |
|||
|
|
элементов типа char и byte |
||||
|
|
(см. MSDN) |
|
|
|
|
|
|
|
|
|
|
|
|
Методы |
|
|
|
|
|
|
|
|
|
|
||
object Clone() |
ICloneable |
Возвращает |
ссылку на |
дан- |
||
|
|
ный экземпляр класса String |
||||
|
|
|
|
|||
static int Compare(string |
|
Сравнивает |
два указанных |
|||
strA, string strB) |
|
объекта String. При strA < |
||||
|
|
|||||
|
|
strB результат меньше нуля, |
||||
|
|
при strA = strB – ноль, при |
||||
|
|
strA > strB – больше нуля |
||||
|
|
|
||||
static int Compare(...) |
|
Еще большой набор методов |
||||
|
|
для сравнения строк с до- |
||||
|
|
полнительными |
опциями |
|||
|
|
(сравнение подстрок, учет |
||||
|
|
регистра, региональных па- |
||||
|
|
раметров) |
|
|
|
|
|
|
|
|
|
||
static int |
|
Сравнивает |
два |
заданных |
||
CompareOrdinal(...) |
|
объекта |
String, |
оценивая |
||
|
|
|||||
|
|
числовые |
значения |
соответ- |
||
|
|
ствующих объектов |
|
|
||
|
|
|
|
|
||
int CompareTo(object |
IComparable |
Реализация |
сравнения |
для |
||
value) |
|
интерфейса IComparable |
|
|||
|
|
|
||||
|
|
|
||||
static string Concat(...) |
|
Ряд методов, соединяющих |
||||
|
|
строковое представление ар- |
||||
|
|
гументов в единую строку |
||||
|
|
|
|
|
|
|
|
448 |
|
|
|
|
|
bool Contains(string |
|
Определяет, |
входит ли под- |
|||||
value) |
|
строка |
в |
данный |
экземпляр |
|||
|
|
|||||||
|
|
строки |
|
|
|
|
|
|
|
|
|
|
|
||||
static string Copy(string |
|
Создает |
копию данного |
эк- |
||||
str) |
|
земпляра строки |
|
|
||||
|
|
|
|
|||||
|
|
|
|
|
||||
void CopyTo(int |
|
Копирует |
в |
строку указан- |
||||
sourceIndex, char[] |
|
ные элементы массива char |
||||||
destination, int |
|
|||||||
|
|
|
|
|
|
|
|
|
destinationIndex, int |
|
|
|
|
|
|
|
|
count) |
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
bool EndsWith(...) |
|
Определяет, |
совпадает |
ли |
||||
|
|
конец |
данного |
экземпляра |
||||
|
|
строки с указанной строкой |
||||||
|
|
|
|
|||||
override bool |
Object |
Сравнивает две строки |
|
|||||
Equals(object obj) |
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
bool Equals(...) |
|
Ряд методов |
для |
сравнения |
||||
static bool Equals(...) |
|
строк |
с |
|
дополнительными |
|||
|
|
|
||||||
|
|
опциями |
|
|
|
|
|
|
|
|
|
||||||
static string Format(...) |
|
Формирует строку из аргу- |
||||||
|
|
ментов в указанном формате |
||||||
|
|
|
||||||
CharEnumerator |
|
Возвращает итератор строки |
||||||
GetEnumerator() |
|
(см. п. 4.9.4 и описание цик- |
||||||
|
|
|||||||
|
|
ла foreach) |
|
|
|
|
||
|
|
|
|
|
|
|||
IEnumerator |
IEnumerable |
То же самое |
|
|
|
|||
GetEnumerator() |
|
|
|
|
|
|
|
|
|
|
|
||||||
Type GetType() |
Object |
Возвращает метакласс типа |
||||||
|
|
|
|
|
||||
TypeCode GetTypeCode() |
IConvertible |
Возвращает |
TypeCode |
для |
||||
|
|
класса String |
|
|
|
|||
|
|
|
||||||
int IndexOf(...) |
|
Ряд методов, возвращающих |
||||||
|
|
позицию первого вхождения |
||||||
|
|
подстроки |
или |
символа в |
||||
|
|
данную строку |
|
|
||||
|
|
|
||||||
int IndexOfAny(char[] |
|
Ряд методов, возвращающих |
||||||
anyOf, ...) |
|
позицию первого вхождения |
||||||
|
|
|||||||
|
|
любого символа из набора в |
||||||
|
|
данную строку |
|
|
||||
|
|
|
|
|
|
|
|
|
|
449 |
|
|
|
|
|
|
|
string Insert(int |
|
Вставляет подстроку в дан- |
|||||
startIndex, string value) |
|
ную строку, и возвращает |
|||||
|
|
||||||
|
|
результат в виде новой стро- |
|||||
|
|
ки |
|
|
|
|
|
|
|
|
|||||
static bool |
|
Указывает, имеет ли указан- |
|||||
IsNullOrEmpty(string |
|
ная строка значение null или |
|||||
|
|
||||||
value) |
|
Empty(1) |
|
|
|
|
|
|
|
|
|
|
|
|
|
static bool |
|
Указывает, является ли ука- |
|||||
IsNullOrWhiteSpace |
|
занная |
строка |
значением |
|||
(string value) |
|
||||||
|
null, пустой строкой или |
||||||
|
|
||||||
|
|
строкой, |
состоящей |
только |
|||
|
|
из пробельных символов(2) |
|||||
static string Join(...) |
|
Сцепляет аргументы метода, |
|||||
|
|
помещая между ними задан- |
|||||
|
|
ный разделитель |
|
|
|||
|
|
|
|
||||
int LastIndexOf(...) |
|
Ряд методов, |
возвращающих |
||||
|
|
позицию |
последнего |
вхож- |
|||
|
|
дения подстроки или симво- |
|||||
|
|
ла в данную строку |
|
||||
|
|
|
|
||||
int LastIndexOfAny |
|
Ряд методов, |
возвращающих |
||||
(char[] anyOf, ...) |
|
позицию |
последнего |
вхож- |
|||
|
|
||||||
|
|
дения любого |
символа из |
||||
|
|
набора в данную строку |
|||||
|
|
|
|
|
|||
string PadLeft(int |
|
Возвращает |
новую |
строку, |
|||
totalWidth) |
|
дополняющую данную слева |
|||||
|
|
||||||
|
|
пробелами |
до |
указанной |
|||
|
|
длины |
|
|
|
|
|
|
|
|
|
|
|||
string PadLeft(int |
|
Возвращает |
новую |
строку, |
|||
totalWidth, char |
|
дополняющую данную слева |
|||||
|
|
||||||
paddingChar) |
|
любыми символами до ука- |
|||||
|
|
||||||
|
|
занной длины |
|
|
|
||
|
|
|
|
|
|||
string PadRight(int |
|
Возвращает |
новую |
строку, |
|||
totalWidth) |
|
дополняющую данную спра- |
|||||
|
|
||||||
|
|
ва пробелами |
до |
указанной |
|||
|
|
длины |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
450 |
|
|
|
|
|
|