Студопедия

КАТЕГОРИИ:


Архитектура-(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)

Другие модификаторы

Модификаторы видимости

Модификаторы

Модификаторы могут указывать видимость метода, как, например public или private, или же их природу, например, virtual или abstract. В языке С# определено множество модификаторов, и

сейчас стоит потратить некоторое время на ознакомление с их полным списком.

Модификаторы видимости указывают, какие другие единицы кода могут видеть элемент

Модификатор

К чему относится

Описание

public

К любым типам или членам

Элемент видим в любом другом коде

protected

к любому члену типа, а также к любому вложенному типу

Элемент видим только любому производному типу

internal

к любым типам или членам

Элемент видим только в пределах включающей его сборки

private

К любому члену типа, а также к любому вложенному типу

Элемент видим только в пределах типа, которому он принадлежит

protected internal

к любому члену типа, а также к любому вложенному типу

Элемент видим только в пределах включающей его сборки, а также в любом коде внутри производного типа

Определения типа могут быть общедоступными или приватными в зависимости от того, хотите ли вы обеспечить его видимость извне сборки. Указывать модификаторы protected, private или protected internal для типов нельзя, поскольку эти уровни видимости не имеют смысла для типа, находящегося в пространстве имен. Это значит, что они могут относиться только к членам. Однако возможно создавать вложенные типы (т.е. типы, содержащиеся внутри других типов) с такой видимостью, поскольку в этом случае типы имеют статус члена. Таким образом, приведенный ниже код вполне корректен:

public class OuterClass { protected class InnerClass { // и т.д. } // и т.д. }

Если есть вложенный тип, он всегда может иметь доступ ко всем членам внешнего типа. Таким образом, в последнем примере любой код внутри InnerClass всегда имеет доступ ко всем членам OuterClass, даже если они объявлены как private.

Модификаторы, перечисленные ранее, могут быть применены к членам типов и характеризуются различным использованием. Некоторые из них также имеет смысл использовать для типов.

Модификатор

К чему относится

Описание

new

К функциям-членам

Член скрывает унаследованный член с той же сигнатурой

static

Ко всем членам

Член не связан с конкретным экземпляром класса

virtual

Только к классам и функциям-членам

Член может быть переопределен в классах - наследниках

abstract

Только к функциям-членам

Виртуальный член, определяющий сигнатуру, но не предоставляющий реализации

override

Только к функциям-членам

Член переопределяет унаследованный виртуальный или абстрактный член базового класса

sealed

К классам, методам и свойствам

Для классов означает, что от таких классов нельзя наследовать. Для свойств и методов — член переопределяет унаследованный виртуальный член, но не может быть переопределен ни одним членом производных классов. Должен применяться в сочетании с override

extern

Только к статическим методам [Dllimport]

Член реализован внешне, на другом языке

<== предыдущая лекция | следующая лекция ==>
Свойства | Наследование реализации
Поделиться с друзьями:


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


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



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




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