Поиск

Безопасность типов

В завершение упомяну такое полезное свойство CTS, как безопасность типов. Безопасность типов гарантирует, что типы являются именно тем, за что они себя выдают, и что над некоторым типом можно выполнить лишь подходящие действия. Безопасность типов предоставляет несколько преимуществ и возможностей (об этом — чуть дальше), большинство из которых обеспечиваются иерархией объектов с единым корнем.

  • Каждая ссылка на объект типизирована, как и объект, на который она ссылается. CTS гарантирует, что ссылка всегда указывает именно на то, на что она должна указывать.
  • Поскольку CTS отслеживает каждый тип в системе, систему нельзя обмануть, выдав один тип за другой. Очевидно, это особенно важно для распределенных приложений, где приоритетом является защита.
  • Каждый тип отвечает за определение доступности своих членов, задавая модификатор доступа. Это делается для каждого члена в отдельности. Может быть задан любой вид доступа (если член объявлен как public), доступ может быть ограничен кругом унаследованных классов (если член объявлен как protected) или вовсе запрещен (при объявлении члена как private). Можно также разрешить доступ к члену только другим типам в составе текущего компилируемого модуля, если объявить его как internal.
Подведем итоги

CTS (Common Type System) — важная особенность .NET Framework. CTS определяет правила системы типов, которым приложения обязаны следовать, чтобы корректно работать в CLR. Типы CTS делятся на ссылочные и размерные. Для определения области видимости приложения можно использовать пространства имен. Среди выгод, предоставляемых CTS, следует отметить возможность взаимодействия языков, иерархию объектов с единым корнем и безопасность типов. В С# типы могут быть преобразованы с помощью упаковки и распаковки, а приведение типов позволяет создавать совместимые типы, имеющие совместимые характеристики и функциональность.