Преимущества .NETFramework
Понятие инкапсуляция
Инкапсуля́ция — свойство языка программирования, позволяющее пользователю не задумываться о сложности реализации используемого программного компонента (то, что у него внутри), а взаимодействовать с ним посредством предоставляемого интерфейса (публичных методов и членов), а также объединить и защитить жизненно важные для компонента данные. При этом пользователю предоставляется только спецификация (интерфейс) объекта.
Пользователь может взаимодействовать с объектом только через этот интерфейс. Реализуется с помощью ключевого слова: public.
Пользователь не может использовать закрытые данные и методы. Реализуется с помощью ключевых слов: private, protected, internal.
Инкапсуляция — один из четырёх важнейших механизмов объектно-ориентированного программирования (наряду с абстракцией, полиморфизмом и наследованием).
Сокрытие реализации целесообразно применять в следующих случаях:
предельная локализация изменений при необходимости таких изменений,
прогнозируемость изменений (какие изменения в коде надо сделать для заданного изменения функциональности) и прогнозируемость последствий изменений.
Понятие полиморфизм.
Полиморфи́зм -возможность объектов с одинаковой спецификацией иметь различную реализацию. Полиморфизм поддерживается - если классы с одинаковой спецификацией могут иметь различную реализацию (реализация класса может быть изменена в процессе наследования)
Кратко, полиморфизм– это один интерфейс, множество реализаций.
Полиморфизм — один из четырёх важнейших механизмов ООП (наряду с абстракцией, инкапсуляцией и наследованием).
Полиморфизм позволяет писать более абстрактные программы и повысить коэффициент повторного использования кода. Общие свойства объектов объединяются в систему, которую могут называть по-разному — интерфейс, класс. Общность имеет внешнее и внутреннее выражение:
внешняя общность проявляется как одинаковый набор методов с одинаковыми именами и сигнатурами (именем методов и типами аргументов и их количеством);
внутренняя общность — одинаковая функциональность методов. Её можно описать интуитивно или выразить в виде строгих законов, правил, которым должны подчиняться методы. Возможность приписывать разную функциональность одному методу (функции, операции) называется перегрузкой метода (перегрузкой функций, перегрузкой операций).
Платформа .NETFramework
Под платформой понимают не только среду разработки для не нескольких языков программирования, но и множество других средств, таких как механизмы поддержки базы данных, электронной почты, коммерции. Платформа .NETFramework обеспечивает переносимость, безопасность, надежность, использование готовых компонентов и межъязыковое взаимодействие при создании программ. Для обеспечения переносимости, компиляторы входящие в состав платформы, переводят программу не в машинный код, а в промежуточный язык, который не содержит команд, зависящих от языка, операционной системы и типа компьютера.
Преимущества .NETFramework
Большим преимуществом конструктивного решения платформы, явл компонентно-ориентированный подход к программированию.
1)Указатели больше не нужны
2)Управление памятью производится автоматически
3)В C# предусмотрены встроенные синтаксические конструкции для работы с перечислениями, структурами и свойствами классов
4)В C# осталась возможность перегружать операторы.Устранена часть сложностей перегрузки.
5)Полная поддержка использования интерфейса
6)Язык C# генерирует код предназначенный для выполнения только в среде .NET(управляемый код).
7.Преимущества использования CLR. Среда выполнения .NET как раз и обеспечивается с помощью Common Language Runtime (CLR стандартная среда выполнения для языков). Главная роль CLR заключается в том, чтобы обнаруживать и загружать типы .NET и производить управление ими в соответствии с вашими командами. CLR берет на себя всю низкоуровневую работу — например, автоматическое управление памятью, межъязыковым взаимодействием, развертывание (с отслеживанием версий) различных двоичных библиотек.
Компоненты .NET Framework
Платформа .NET содержит огромную библиотеку классов*, которые можно использовать при программировании на любом языке .NET. Общая структура библиотеки приведена на рис. 1.2. Библиотека имеет несколько уровней. На самом нижнем находятся базовые классы среды, которые используются при создании любой программы: классы ввода-вывода, обработки строк, управления безопасностью, графического интерфейса пользователя, хранения данных и пр.
Рис. 1.2. Структура платформы .NET
Над этим слоем находится набор классов, позволяющий работать с базами данных и X M L. Классы самого верхнего уровня поддерживают разработку распределенных приложений, а также веб- и Windows-приложений. Программа может использовать классы любого уровня. Подробное изучение библиотеки классов .NET — необходимая, но и наиболее трудоемкая задача программиста при освоении этой платформы. Библиотека классов вместе с CLR образуют каркас (framework), то есть основу платформы.
9.Обзор С#
Специально для платформы .NET Microsoft был разработан новый язык программирования С#. С# — это язык программирования, синтаксис которого очень похож на синтаксис Java (но не идентичен ему). Синтаксические конструкции С# унаследованы не только от C++, но и отVisual Basic. Например, в С#, как и в Visual Basic, используются свойства классов. Как C++', С# позволяет производить перегрузку операторов для созданных вами типов. самое важное, что необходимо сказать про язык С#, — это то, что онгенерирует код, предназначенный для выполнения только в среде выполнения.NET. Например, вы не сможете использовать С# для создания классическогоСОМ-сервера
10.Структура программы на C#
using System:
namespace ConsoleApplicationl
{class Classl
{
static void MainO
{
Console.WriteLine( "Ур-ра! Зар-работало! (с) Кот Матроскин" ):
}}}
Директива using System разрешает использовать имена стандартных классов из пространства имен System непосредственно (без указания имени пространства).
Ключевое слово namespace создает для проекта собственное пространство имен, названное по умолчанию ConsoleAppl icationl. Это сделано для того, чтобы можно было давать программным объектам имена, не заботясь о том, что они могут совпасть с именами в других пространствах имен. Описание класса начинается с ключевого слова class, за которым следуют его имя и далее в фигурных скобках — список элементов класса (его данных и функций, называемых также методами).В данном случае внутри класса только один лемент — метод Main. Каждое приложение должно содержать метод Main — с него начинается выполнение программы.
Все методы описываются по единым правилам.
Упрощенный синтаксис метода:
[ спецификаторы ] тип имя_нетода ( [ параметры ] )
{
тело метода: действия, выполняемые методом
}
11.Система типов языка С#
Размерные и ссылочные типы
(Перед разработчиками CTS стояла задача создания системы типов, где любая сущность была бы объектом, но система типов при этом работала эффективно. Они решили эту задачу, разделив типы CTS на две категории: размерные (value types) и ссылочные (reference types))