Компьютерные книги
Главное меню
Главная Поиск по сайту Добавить материал О нас Карта книг Карта сайта
Реклама
computersbooks.net -> Добавить материал -> Языки программирования -> Ватсон К. -> "С#" -> 92

С# - Ватсон К.

Ватсон К. С# — Лори, 2005 . — 879 c.
ISBN 1-861004-98-2
Скачать (прямая ссылка): vatsonc2005.pdf
Предыдущая << 1 .. 86 87 88 89 90 91 < 92 > 93 94 95 96 97 98 .. 404 >> Следующая


Это один из наследуемых от system.object методов (класс system.object не изображен на диаграмме просто для краткости). ToStringO возвращает имя класса данного объекта в виде строки.

System.Object

Поскольку все классы наследуются ОТ System,Object, то онн обладают доступом ко всем его защищенным и общим членам. Поэтому имеет смысл ознакомиться с тем, что нам доступно. System.Object содержит следующие методы:

Метод Возвращаемый тип Вир- туаль- ный Ста- тиче- ский Описание
Obj ect() Отсутствует Нет Нет Конструктор типа System.Object. Автоматически вызывается конструкторами производных типов
-Object () (также известен под именем Finalize!) — см. следующий раздел) Отсутствует Нет Нет Деструктор для типа System.Object. Автоматически вызывается деструкторами производных типов, сам по себе вызван быть не может
Equals(object) -bool Да Нет Сравнивает объект, для которого вызывается, с другим объектом и возвращает значенне true, если онн равны. Реализация, выполняющаяся по умолчанию, проверяет, ссылается ли
186 __________________Глава 9

Продолжении таблицы
Метод Возвращаемый тип Вир- туаль- ный Ста- тиче- ский Описание
Equals(object) (продолжение) переданный в качестве параметра объект на тот же самый объект (поскольку объекты представляют собой ссылочные типы). Еслн необходимо сравнивать объекты каким-либо иным образом, например, на предмет одинакового значення, этот метод может быть переопределен
Equals(object, object) bool Нет Да Сравнивает два объекта, передаваемых ему в качестве параметров, на предмет того, равны ли онн. Эта проверка выполняется с помощью метода Equals (object). Заметьте, что, еслн оба объекта обладают нулевыми ссылками, возвращается значение true
Refer enceBquals(object, object) bool Нет Да Сравнивает два переданных ему объекта, определяя, являются ли онн ссылками на один и тот же экземпляр
ToString() string Да Нет Возвращает строку, соответствующую экземпляру объекта. По умолчанмю это квалифицированное имя класса (см. предыдущий пример), однако метод можно переопределить для выполнения действий, подходящих для типа данного класса
MemberwiseClone() object Нет Нет Копирует объект посредством создания нового экземпляра объекта и копирования всех членов. Обратите внимание, что такое копирование членов не приводит к созданию новых экземпляров этих членов. Любые члены ссылочного типа в новом объекте будут ссылаться на те же объекты, на которые они ссылаются в исходном классе. Рассматриваемый метод является защищенным, поэтому его можно использовать внутри класса или ьнутри производных классов
GetType() System.Type Нет Нет Возвращает тип объекта в виде объекта System.Туре
GetHashCode() int Да Нет Используется как функция хеширования для объектов. Хеш-функция — это функция, возвращающая значение, которое позволяет идентифицировать объект в некоторой сжатой форме

Эти методы являются основными, они должны поддерживаться всеми типами объектов в .NET Framework, хотя, возможно, некоторые из них вам никогда не придется использовать (или только при определенных обстоятельствах, как, например, GetHashCade <) ).

Метод GetTypeO полезен при использовании полиморфизма, поскольку он позволяет выполнять разные коды для объектов разных типов, а не один и тот же код для всех объектов, как это часто бывает. Например, если у нас имеется функция,
Определение классов__________________________________________________________________________187

которой передается параметр типа object (это означает, что мы можем передавать ей практически все, что угодно), то можно предусмотреть выполнение в ней специальных работ в случае поступления объектов конкретного типа. Воспользовавшись сочетанием GecTypeO с typeof о (оператор С#, который преобразовывает имя класса в объект System.туре), мы получаем возможность выполнять сравнения примерно следующим образом:

if (typeof(nyObj) ¦¦ typeof(MyComplexClasa))

(

П Объект wyObj является экземпляром класса MyCompl exC 1 as a

)

Возвращаемый объект Syetem.Type обладает гораздо более широкими возможностями, но здесь мы не будем на нем останавливаться. Отражение подробно описывается в главе 22,

Очень часто оказывается весьма полезным переопределить метод ToString < >, особенно в тех ситуациях, когда содержимое объекта может быть с легкостью представлено в виде одной удобочитаемой строки.

Этн методы System.object будут постоянно встречаться в последующих главах, поэтому сейчас мы завершаем обсуждение; дополнительные детали будут объясняться по мере необходимости. •

Конструкторы и деструкторы

Когда мы описываем какой-либо класс в С#, го в большинстве случаев нет необходимости описывать соответствующие ему конструкторы и деструкторы, поскольку объект базового класса System.Object обеспечивает их реализацию по умолчанию. Однако иногда стоит описать их самостоятельно, что позволит инициализировать и уничтожать объекты.

Для того чтобы добавить в класс простои конструктор, необходимо воспользоваться следующим несложным синтаксисом:
Предыдущая << 1 .. 86 87 88 89 90 91 < 92 > 93 94 95 96 97 98 .. 404 >> Следующая
Книги
Web-программирован-
ие
Аппаратное обеспечение Графика Руководство по П.О. Самоучитель Теория программирования Фотошоп Языки программирования
Новые книги
Вирт Н. "Систематическое программирование " (Теория программирования)

Эком "Microsoft Excel 2000 шаг за шагом Русская версия самоучитель " (Самоучитель)

Поляков А.Ю. "Методы и алгоритмы компьютерной графики в примерах Vizual C++" (Графика)

Баяковский Ю.М. "Графическая библиотека Open GL " (Графика)

Валиков А. "Технология " (Языки программирования)
Авторские права © 2013 ComputersBooks. Все права защищены.