Главная страница
Навигация по странице:

  • Типы данных С

  • Классы и методы в C

  • Выражения и операторы C

  • Категория операций Операции

  • Интерфейсы C

  • Сериализация объектов

  • visual studio основы. Введение в C# и платформу Visual Studio. Net Разработка программных приложений


    Скачать 226.25 Kb.
    НазваниеВведение в C# и платформу Visual Studio. Net Разработка программных приложений
    Дата26.10.2022
    Размер226.25 Kb.
    Формат файлаpptx
    Имя файлаvisual studio основы.pptx
    ТипДокументы
    #755373

    Введение в C# и платформу Visual Studio.Net

    Разработка программных приложений

    MicrosoftVisualStudio .NET - это интегрированная среда разработки для создания, документирования, запуска и отладки программ, написанных на языках .NET.

    Эта среда разработки является открытой языковой средой.

    Платформа Framework. Net позволяет:

    • легко использовать компоненты, разработанные на различных языках;
    • разрабатывать единое приложение из нескольких частей на разных языках;

    Модули

    • Двоичные файлы, образующие совместно общую сборку называются модулями.
    • При этом один из двоичных файлов должен содержать  манифест сборки. Остальные модули могут содержать только метаданные типов и инструкции IL.

    Основы C#

    Что нового принес язык C# по сравнению с уже существовавшими до него языками?

    • В программах на C#, как правило, нет необходимости в работе с указателями (при сохранении этой возможности), поскольку в нем реализовано автоматическое управление памятью.
    • Предусмотрены встроенные синтаксические конструкции для работы с перечислениями, структурами и свойствами классов.

    Проекты

    Для разработки приложений в Visual Studio.Net используются проекты.

    Проект ( Project ) - это основная единица, с которой имеет дело разработчик.

    Сначала он должен выбрать тип проекта, после чего Visual Studio создает каркас проекта в соответствии с выбранным типом.

    Решения

    • Несколько проектов могут объединяться в решение (Solution), которое также может включать ресурсы, необходимые этим проектам.

    Типы данных С#

    Типы данных С#

    Стандарт языка C++ включает следующий набор фундаментальных типов.

    • Логический тип ( bool ).
    • Символьный тип ( char ).
    • Целые типы. Они могут отличаться размером: short, int, long, а также могут быть знаковыми ( signed ) или беззнаковыми ( unsigned ).
    • Типы с плавающей точкой. Они также могут отличаться размерами: float, double и long double.

    Типы данных С#

    Тип void указывает на отсутствие информации.

    К конструируемым типам относятся следующие:

    • Указатели (например, char* ).
    • Ссылки (например, char& ).
    • Массивы (например, char[] ).

    Типы данных С#

    Также язык позволяет разработчику конструировать собственные типы:

    • Перечисляемые типы ( enum ).
    • Структуры ( struct ).
    • Классы.

    Типы данных С#

    В языке C# все типы можно рассматривать и под другим ракурсом, разделив их на четыре категории:

    • Типы-значения ( value ).
    • Ссылочные ( reference ).
    • Указатели ( pointer ).
    • Тип void.
    • Для ссылочного типа значение задает ссылку на область памяти в "куче" (heap), где расположен соответствующий объект.

      Для типа-значения значением являются собственно данные, а память для них выделяется в стеке.

      Логический, арифметический, структуры, перечисление 

      относятся к типам-значениям.

      Массивы, строки и классы относятся к ссылочным типам.

    Тип Object

    И ссылочные, и обычные типы являются производными от базового класса object.

    В тех случаях, когда обычный тип должен вести себя как объект, создается оболочка (wrapper), которую можно рассматривать как ссылочный объект, помещенный в кучу, и в нее копируется значение переменной обычного типа. Оболочка автоматически помечается таким образом, что система знает, какое значение она содержит. Этот процесс назывется упаковкой ( boxing ), а обратный процесс - распаковкой ( unboxing ).

    Упаковка происходит автоматически, для этого нужно только присвоить значение обычного типа переменной типа object.

    Упаковка и распаковка позволяют обрабатывать любой тип как объект.

    Например, в выражении

    3.ToString();

    целое число 3 упаковывается путем вызова функции Int32.ToString().

    Массивы

    Массивы в C# могут быть 

    • многомерными ( multidimensional ) или 
    • невыровненными ( jagged ).
    • Более сложные структуры данных такие, как стек и хеш-таблица определены в пространстве имен System.Collections.

    Класс сhar[]

    В языке C# определен класс сhar[], и его можно использовать для представления строк постоянной длины.

    Однако массив сhar[] - это обычный массив, поэтому его нельзя инициализировать строкой символов.

    В C# не определено преобразование из класса сhar[] в класс String.

    У String есть динамический метод ToCharArray, задающий подобное преобразование в сhar[].

    Класс String

    • Класс String не разрешает изменять существующие объекты. 
    • Класс StringBuilder позволяет исправить этот недостаток. Этот класс принадлежит к изменяемым классам и его можно найти в пространстве имен System.Text.

    Классы и методы в C#

    • В Visual Studio.Net, и в C# в частности, любая программная система рассматривается как совокупность классов, объединенных в проекты, пространства имен, решения.
    • Описание класса имеет следующий синтаксис:
    • [атрибуты][модификаторы]class имя_класса[:список_родителей]

      {тело_класса}

    Тело класса

    В теле класса могут быть объявлены:

    • константы;
    • поля;
    • конструкторы и деструкторы;
    • методы;
    • события;
    • делегаты;
    • классы (структуры, интерфейсы, перечисления).

    Поля и методы

    • Поля класса синтаксически являются обычными переменными (объектами) языка. Их описание удовлетворяет обычным правилам объявления переменных. Поля характеризуют свойства объектов класса.
    • Методы класса синтаксически являются обычными процедурами и функциями языка. Методы содержат описания операций, доступных над объектами класса. Методы, называемые свойствами являются специальной синтаксической конструкцией, предназначенной для обеспечения эффективной работы с классами.

    Конструктор

    Конструктор представляет собой специальный метод класса, позволяющий создавать объекты класса.

    Его имя должно совпадать с именем класса.

    Если разработчик не определяет конструктор класса, то к классу автоматически добавляется конструктор по умолчанию - конструктор без аргументов.

    Делегат

    Делегат в C# представляет собой описание случая класса и задает определение функционального типа (класса) данных.

    Экземплярами класса являются функции. Каждый делегат описывает множество функций с заданной сигнатурой.

    Каждая функция (метод), сигнатура которого совпадает с сигнатурой делегата, может рассматриваться как экземпляр класса, заданного делегатом

    Синтаксис объявления делегата имеет следующий вид:

    [<спецификатор доступа>] delegate <тип результата> <имя класса> (<список аргументов>);

    Выражения и операторы C#

    Выражения строятся из операндов - констант, переменных, функций, - объединенных знаками операций и скобками. При вычислении выражения определяется его значение и тип.


    Категория операций

    Операции

    Арифметические

    + – * / %

    Логические (boolean и побитовые)

    & | ^ ! && ||

    Строковые

    +

    Инкремент и декремент

    ++ --

    Сдвиг

    >> <<

    Сравнение

    == != < > <= >=

    Присвоение

    = += –= *= /= %= &= |= ^= <<= >>=

    Обращение к члену класса

    .

    Индексация

    []

    Приведение типа (Cast)

    ()

    Условие

    ?:

    Создание объекта

    new()

    Информация о типе

    is sizeof typeof

    Управление исключениями

    checked unchecked

    Косвенности и адресации

    * –> [] &

    Переменные

    Имя и тип переменной задаются при ее объявлении и остаются неизменными в течение всего времени ее жизни.

    Особенностью языка C# является требование обязательной инициализации переменной до начала ее использования.

    Попытка использовать неинициализированную переменную приводит к ошибкам, обнаруживаемым еще на этапе компиляции.

    Операторы

    По используемым выражениям и операторам C# похож на C++. Так в программах на C# используются такие операторы как:

    • Оператор присваивания ( = )
    • Составной оператор ( {} )
    • Операторы выбора: if-else и switch
    • Операторы цикла: for, while, do..while
    • Операторы break и continue
    • Оператор return
    • Оператор перехода goto

    Оператор foreach

    Кроме того, введены несколько новых инструкций. Например, оператор foreach позволяет получить доступ ко всем элементам массива или коллекции поочередно, в порядке возрастания индексов.

    Его синтаксис:

    foreach (тип идентификатор in контейнер) оператор

    Интерфейсы C#

    Интерфейс представляет собой полностью абстрактный класс, все методы которого абстрактны.

    Однако методы интерфейса объявляются без указания модификатора доступа, и класс, наследующий интерфейс, обязан полностью реализовать все методы интерфейса.

    В этом - отличие от класса, наследующего абстрактный класс, где потомок может реализовать лишь некоторые методы родительского абстрактного класса, оставаясь абстрактным классом.

    Интерфейсы C#

    Интерфейс позволяет описывать некоторые желательные свойства, которыми могут обладать объекты разных классов.

    Среди интерфейсов, встроенных в библиотеку базовых классов .NET, можно особо выделить такие как:

    • IEnumerable (для работы с наборами объектов, в т.ч. с использованием оператора foreach ).
    • IClonable (копирование объектов).
    • IComparable (для сравнения и сортировки объектов).

    Пространство имен

    Пространство имен System.Collections, предназначенное для работы с наборами объектов, поддерживает интерфейсы:

    • ICollection (определяет общие характеристики класса набора элементов).
    • IComparer, IDictionary (позволяет представлять содержимое объекта в виде пар имя-значение).
    • IDictionaryEnumerator (нумерация содержимого объекта, поддерживающего IDictionary ).
    • IEnumerable, IEnumerator.
    • IHashCodeProvider (возвращает хэш-код с помощью выбранного алгоритма хэширования).
    • IList (обеспечивает методы добавления, удаления и индексирования элементов в списке объектов).

    Сериализация объектов

    При работе с программной системой зачастую возникает необходимость в сериализации объектов.

    Под сериализацией понимают процесс сохранения объектов в долговременной памяти (файлах) в период выполнения системы.

    Под десериализацией понимают обратный процесс - восстановление состояния объектов, хранимых в долговременной памяти.

    Механизмы сериализации C# и Framework.Net поддерживают два формата сохранения данных - в

    • бинарном файле и 
    • XML файле.
    • В первом случае данные при сериализации преобразуются в бинарный поток символов, который при десериализации автоматически преобразуется в нужное состояние объектов.

      Другой возможный преобразователь запоминает состояние объекта в формате XML.

    • Если класс объявить с атрибутом [Serializable], то в него встраивается стандартный механизм сериализации, поддерживающий глубокую сериализацию.
    • Если по каким-либо причинам стандартная сериализация разработчика не устраивает, то класс следует объявить наследником интерфейса ISerializable, реализация методов которого позволит управлять процессом сериализации.


    написать администратору сайта