Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

System.Object




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

 

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

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

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

if (typeof(myObj) == typeof(MyComplexClass))

{

//Объект myObj является экземпляром класса MyComplexClass

}

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




Поделиться с друзьями:


Дата добавления: 2014-01-04; Просмотров: 332; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.006 сек.