Поиск

Члены класса

Я рассказал о типах, определенных в CIS (Common Type System). Эти типы поддерживаются как члены классов С# и бывают следующих видов.

  • Поле. Так называется член-переменная, содержащий некоторое значение. В ООП поля иногда называют данными объекта. К полю можно применять несколько модификаторов в зависимости от того, как вы собираетесь это поле использовать. В число модификаторов входят static, readonly и const. Ниже мы познакомимся с их назначением и способами их применения.
  • Метод. Это реальный код, воздействующий на данные объекта (или поля). В этой главе мы сосредоточимся на определении данных класса.
  • Свойства. Их иногда называют "разумными" полями (smart fields), так как они на самом деле являются методами, которые клиенты класса воспринимают как поля. Это обеспечивает клиентам большую степень абстрагирования за счет того, что им не нужно знать, обращаются ли они к полю напрямую или через вызов метода-аксессора.
  • Константы. Как можно предположить, исходя из имени, константа — это поле, значение которого изменить нельзя. Ниже мы обсудим константы и сравним их с сущностью под названием неизменяемые (readonly) поля.
  • Индексаторы. Если свойства — это "разумные" поля, то индексаторы _ это "разумные" массивы, так как они позволяют индексировать объекты методами-аксессорами get и set. С помощью индексатора легко проиндексировать объект для установки или получения значений.
  • События. Событие вызывает исполнение некоторого фрагмента кода. События — неотъемлемая часть программирования для Microsoft Windows. Например, события возникают при движении мыши, щелчке или изменении размеров окна. События С# используют ту же стандартную модель публикации/подписки (publish/subscribe), что и в MSMQ (Microsoft Message Queuing) и асинхронной модели событий СОМ+, которая дает приложению средства асинхронной обработки событий. Но в С# это базовая концепция, встроенная в язык.
  • Операторы. Используя перегрузку операторов С#, можно добавлять к классу стандартные математические операторы, которые позволяют писать более интуитивно понятный код.