Типы или классы? И типы, и классы

Написано admin в 20 Июнь 2008 – 20:48 -


Типы или классы? И типы, и классы

Язык C# в большей степени, чем язык C++, является языком объектного программирования. В чем это выражается? В языке C# сглажено различие между типом и классом. Все типы – встроенные и пользовательские – одновременно являются классами, связанными отношением наследования. Родительским, базовым классом является класс Object. Все остальные типы или, точнее, классы являются его потомками, наследуя методы этого класса. У класса Object есть четыре наследуемых метода:

  1. bool Equals (object obj) – проверяет эквивалентность текущего объекта и объекта, переданного в качестве аргумента;
  2. System.Type GetType () – возвращает системный тип текущего объекта;
  3. string ToString () – возвращает строку, связанную с объектом. Для арифметических типов возвращается значение, преобразованное в строку;
  4. int GetHashCode() – служит как хэш-функция в соответствующих алгоритмах поиска по ключу при хранении данных в хэш-таблицах.

Естественно, что все встроенные типы нужным образом переопределяют методы родителя и добавляют собственные методы и свойства. Учитывая, что и типы, создаваемые пользователем, также являются потомками класса Object, то для них необходимо переопределить методы родителя, если предполагается использование этих методов; реализация родителя, предоставляемая по умолчанию, не обеспечивает нужного эффекта. Read more »


Tags: , , , , , , , , ,
Находится в Уроки C# | No Comments »

Урок 41. Методы класса System.Object

Написано admin в 14 Июнь 2008 – 16:23 -


Урок 41. Методы класса System.Object

В классе System.Object имеются следующие методы:

  • Equals – виртуальный метод, возвращающий True, если два объекта расположены в одном месте памяти (второй объект передается в качестве параметра).
  • GetHashCode – виртуальный метод, возвращает некоторое целое число (хэш-код), однозначно идентифицирующее экземпляр класса.
  • GetType – возвращает объект типа Type, описывающий соответствующий тип.
  • ToString – виртуальный метод, по умолчанию возвращает строку, представляющую полное имя типа объекта.

Вот пример использования этих методов:

Read more »


Tags: , , , , , ,
Находится в Уроки C# | No Comments »

Урок 27. Строки (класс StringBuilder)

Написано admin в 14 Июнь 2008 – 16:12 -


Урок 27. Строки (класс StringBuilder)

На этом уроке мы рассмотрим другой класс для работы со строками – класс StringBuilder. Он принадлежит пространству имен System.Text

Этот класс работет быстрее, чем класс String, так как при изменении строки, созданной как экземпляр класса String, у нас создается каждый раз новый экземпляр класса, а старый уничтожается, при использовании же класса StringBuilder расходов на создание-уничтожение экземпляра класса нет – мы работаем всегда с одним экземпляром. Read more »


Tags: , , , , , , , , , ,
Находится в Уроки C# | No Comments »

C# — язык программирования, сочетающий объектно-ориентированные и аспектно-ориентированные концепции. Разработан в 1998—2001 годах группой инженеров под руководством Андерса Хейлсберга в компании Microsoft как основной язык разработки приложений для платформы Microsoft .NET. Компилятор с C# входит в стандартную установку самой .NET, поэтому программы на нём можно создавать и компилировать даже без инструментальных средств вроде Visual Studio. Школьная география. C# относится к семье языков с C-подобным синтаксисом, из них его синтаксис наиболее близок к С++ и Java. Язык имеет строгую статическую типизацию, поддерживает полиморфизм, перегрузку операторов, указатели на функции-члены классов, атрибуты, события, свойства, исключения, комментарии в формате XML. Переняв многое от своих предшественников — языков С++, Java, Delphi, Модула и Smalltalk — С#, опираясь на практику их использования, исключает некоторые модели, зарекомендовавшие себя как проблематичные при разработке программных систем: так, C# не поддерживает множественное наследование классов (в отличие от C++).