Переопределение элементов System.Object, заданных по умолчанию

Переопределение элементов System.Object, заданных по умолчанию

Хотя заданное по умолчанию поведение System.Object может оказаться вполне приемлемым в большинстве случаев, вполне обычным для создаваемых вами типов будет переопределение некоторых из унаследованных методов. В главе 4 предлагается подробный анализ возможностей ООП в рамках C#, но, по сути, переопределение - это изменение поведения наследуемого виртуального члена в производном классе. Как вы только что убедились, System.Object определяет ряд виртуальных методов (например, ToString() и Equals()), задающих предусмотренную реализацию. Чтобы иметь другую реализацию этих виртуальных членов для производного типа, вы должны использовать ключевое слово C# override (букв. подменять).

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

Мастер-класс: System.Object

Из книги Язык программирования С# 2005 и платформа .NET 2.0. [3-е издание] автора Троелсен Эндрю

Мастер-класс: System.Object Совет. Следующий обзор System.Object предполагает, что вы знакомы с понятиями виртуального метода и переопределения методов. Если мир ООП для вас является новым, вы можете вернуться к этому разделу после изучения материала главы 4.В .NET каждый тип в конечном


Переопределение System.Object.ToString()

Из книги Объектно-ориентированный анализ и проектирование с примерами приложений на С++ автора Буч Гради

Переопределение System.Object.ToString() Переопределение метода ToString() дает возможность получить "снимок" текущего состояния объекта. Это может оказаться полезным в процессе отладки. Для примера давайте переопределим System.Object.ToString() так, чтобы возвращалось текстовое представление


Переопределение System.Object. Equals()

Из книги Программирование на языке Ruby [Идеология языка, теория и практика применения] автора Фултон Хэл

Переопределение System.Object. Equals() Давайте переопределим и поведение System.Object.Equals(), чтобы иметь возможность работать с семантикой, основанной на значениях. Напомним, что по умолчанию Equals() возвращает true (истина), когда обе сравниваемые ссылки указывают на один и тот же объект в


Переопределение System.Object.GetHashCode()

Из книги Технология XSLT автора Валиков Алексей Николаевич

Переопределение System.Object.GetHashCode() Если класс переопределяет метод Equals(), следует переопределить и метод System.Object.GetHashCode(). Не сделав этого, вы получите предупреждение компилятора. Роль GetHashCode() – возвратить числовое значение, которое идентифицирует объект в зависимости от его


Статические члены System.Object

Из книги Самоучитель работы на Macintosh автора Скрылина Софья

Статические члены System.Object В завершение нашего обсуждения базового класса .NET, находящегося на вершине иерархии классов, следует отметить, что System.Object определяет два статических члена (Object.Equals() и Object.ReferenceEquals()), обеспечивающих проверку на равенство значений и ссылок


Переопределение System.Object.Finalize()

Из книги автора

Переопределение System.Object.Finalize() В тех редких случаях, когда воздается C#-класс, использующий неуправляемые ресурсы, нужно гарантировать, что соответствующая память будет обрабатываться прогнозируемым образом. Предположим, что вы создали класс MyResourceWrapper, использующий


Базовые классы System.MulticastDelegate и System.Delegate

Из книги автора

Базовые классы System.MulticastDelegate и System.Delegate Таким образом, при создании типов c помощью) ключевого слова delegate в C# вы неявно объявляете тип класса, являющегося производным от System.MulticastDelegate. Этот класс обеспечивает своим потомкам доступ к списку с адресами тех методов, которые


Снова о создании объектных образов, восстановлении значений и System.Object

Из книги автора

Снова о создании объектных образов, восстановлении значений и System.Object Чтобы понять, в чем заключаются преимущества использования обобщений, следует выяснить, какие проблемы возникают у программиста без их использования. Вы должны помнить из главы 3, что платформа .NET


Получение Туре с помощью System.Object.GetType()

Из книги автора

Получение Туре с помощью System.Object.GetType() Экземпляр класса Туре можно получить множеством способов. Нельзя только непосредственно создать объект Туре, используя для этого ключевое слово new, поскольку класс Туре является абстрактным. Чтобы привести пример одной из


А.5. Common Lisp Object System (CLOS)

Из книги автора

А.5. Common Lisp Object System (CLOS) Происхождение Существуют буквально десятки диалектов языка Lisp, включая MacLisp, Standard Lisp, SpiceLisp, S-1 Lisp, ZetaLisp, Nil, InterLisp и Scheme. В начале 80-х годов под воздействием идей объектно-ориентированного программирования возникла серия новых диалектов Lisp, многие из


2.31. Удаление заданных символов

Из книги автора

2.31. Удаление заданных символов Метод delete удаляет из строки те символы, которые включены в список, переданный в качестве параметра:s1 = "To be, or not to be"s2 = s1.delete("b")  # "To e, or not to e"s3 = "Veni, vidi, vici!"s4 = s3.delete(",!") # "Veni vidi vici"Этот параметр подчиняется тем же правилам, что и параметр метода count


8.1.15. Удаление заданных элементов из массива

Из книги автора

8.1.15. Удаление заданных элементов из массива В Ruby легко удалить элементы из массива - для этого даже существует много способов. Чтобы удалить элемент с известным индексом, достаточно вызвать метод delete_at:a = [10, 12, 14, 16, 18]a.delete_at(3) # Возвращает 16.# а равно [10, 12, 14, 18]a.delete_at(9) #


8.1.26. Указание значения по умолчанию для новых элементов массива

Из книги автора

8.1.26. Указание значения по умолчанию для новых элементов массива Когда массив растет и в нем создаются новые элементы, по умолчанию им присваивается значение nil:a = Array.newa[0]="x"a[3]="y"# а равно ["x", nil, nil, "y"]Но, допустим, нам требуется, чтобы новые элементы получали другое значение.


11.2.8. Опознание параметров, заданных по умолчанию

Из книги автора

11.2.8. Опознание параметров, заданных по умолчанию В 2004 году Ян Макдональд (Ian Macdonald) задал в списке рассылки вопрос: «Можно ли узнать, был ли параметр задан вызывающей программой или взято значение по умолчанию?» Вопрос интересный. Не каждый день он возникает, но от того не


Выбор шаблонов для элементов пространства имен, определенного по умолчанию

Из книги автора

Выбор шаблонов для элементов пространства имен, определенного по умолчанию Одним из значительных неудобств первой версии XSLT была невозможность сменить пространство имен, определенное по умолчанию для паттернов. То есть, если шаблон будет определен как<xsl:template


4.5.3. Изменение настроек, заданных по умолчанию

Из книги автора

4.5.3. Изменение настроек, заданных по умолчанию По умолчанию для отображения и скрытия рабочей области приложения Dashboard используется клавиша <F12>. Но умолчания можно изменить в окне мини-утилиты Expos? и Spaces на вкладке Expos? (рис. 4.64). Для открытия этого окна следует вызвать