Ватсон Карли
Шрифт:
□ Указатели не могут указывать на переменные, которые встроены в ссылочные типы данных (например, членов класса), если только они не объявлены внутри инструкции
Фиксация донных в куче
Разрешается присвоить адрес типа данных значения указателю, даже если этот тип встроен как поле-член в ссылочный тип данных. Однако такой указатель должен быть объявлен внутри инструкции
Возможно вкладывание блоков
Объявление массивов в стеке
C# предоставляет оператор
Оператор
Синтаксис C++:
Синтаксис C#:
Отметим, однако, что хотя эти массивы похожи, версия C# позволяет определить размер во время выполнения:
Интерфейсы
Интерфейсы являются особенностью C#, которая не имеет аналога в ANSI C++, хотя компания Microsoft ввела интерфейсы в C++ с помощью специального ключевого слова. Идея интерфейса развилась из интерфейсов COM, которые предназначены служить контрактом, который указывает, какие методы или свойства реализует объект.
Интерфейс в C# не совсем такой, как интерфейс COM, так как он не имеет связанного с ним GUID, не является производным из
Можно заметить, однако, следующие синтаксические различия с определением класса:
□ Методы не имеют модификаторов доступа.
□ Методы никогда не реализуются в интерфейсе.
□ Методы не объявляются виртуальными или явно абстрактными. Выбор методов принадлежит классу, который реализует этот интерфейс.
Класс реализует интерфейс, наследуя из него. Класс может быть производным только от одного класса, но от любого числа интерфейсов. Если класс реализует интерфейс, то он должен предоставить реализации всех методов, определенных этим интерфейсом.
В этом примере выбрана реализация
Интерфейсы могут также выводиться из других интерфейсов, и в этом случае производный интерфейс содержит свои собственные методы, а также методы базового интерфейса.
Можно проверить, что объект реализует интерфейс, используя либо оператор