Платформа. NET. Работа с методами. ООП в C #. Делегаты и события. Windows Forms. Элементы управления и их создание

Содержание

Слайд 2

.NET Framework .NET Framework - это независимая от языка среда программирования,

.NET Framework

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

корпорацией Microsoft. Кроме среды выполнения программы в Framework существуют библиотеки классов, которые упрощают разработку безопасных взаимодействующих с другими приложений Windows и приложений на основе Интернет-технологий.
Слайд 3

CLR (Common Language Runtime) CLR (Common Language Runtime) – Среда Времени

CLR (Common Language Runtime)

CLR (Common Language Runtime) – Среда Времени Выполнения

или Виртуальная машина. Обеспечивает выполнение сборки. Основной компонент .NET Framework.
Слайд 4

Выполнение программы на .NET При компиляции приложений .NET на выходе получается

Выполнение программы на .NET

При компиляции приложений .NET на выходе получается не исполняемый

машинный код, а промежуточный код на специальном языке, который называется MSIL (Microsoft Intermediate Language) или просто IL (Intermediate Language). Своим внешним видом MSIL напоминает язык Ассемблера, но является более высокоуровневым и по своей природе является объектно-ориентированным.
Поскольку существует промежуточный язык IL, то код, который получается на этом языке программирования, теоретически не зависит от исходного языка программирования. Второй задачей, которую решает этот подход, является возможность создавать приложения независящие от разрядности операционной системы (32 бита или 64 бита).
Наконец, третья задача, которую решает приведенный подход – это теоретическая возможность запускать программный код, без перекомпиляции на разных платформах. Это означает, что исполняемый файл содержит только код на промежуточном языке, который может быть преобразован в машинный код для той платформы, на которой он исполняется в данный момент. 
Слайд 5

Идеология Идеология .NET Framework способствует внедрению новых языков программирования в общую

Идеология

Идеология .NET Framework способствует внедрению новых языков программирования в общую инфраструктуру, поскольку

разработчику этого языка программирования нужно лишь позаботиться о трансформации языковых конструкций в язык IL – все остальное сделает среда исполнения. Благодаря этому в последнее время появляется огромное количество языков программирования для платформы .NET – F#, Boo, IronPython, IronRuby, Haskell, Nemerle, JScript.NET и др.
Слайд 6

Схема выполнения .NET-приложения в среде CLR

Схема выполнения .NET-приложения в среде CLR

Слайд 7

Язык от Microsoft, Intel, HP Язык на котором написана платформа .NET

Язык от Microsoft, Intel, HP
Язык на котором написана платформа .NET Framework
Результат

эволюции языков программирования
С# - “на пол тона выше” С++
Слайд 8

Некоторые отличия C# от C++ В С# отсутствует множественное наследование (компенсируется

Некоторые отличия C# от C++

В С# отсутствует множественное наследование (компенсируется

мн. насл. интерфейсов)
Переменные любого типа (даже bool и int) являются объектами
Для освобождения памяти используется система сборки мусора среды выполнения
Невозможно определить глобальные переменные или методы, их определения должны находиться внутри классов
Слайд 9

Некоторые отличия C# от C++ Все данные делятся на ссылочные и

Некоторые отличия C# от C++

Все данные делятся на ссылочные и размерные
Ссылочные

хранятся в общем пуле памяти, а размерные могут храниться в стеке метода
Данные типа bool могут принимать только два значения true и false, при этом не допускается преобразование этого типа в другие
Разрядность каждого типа данных не зависит от ОС и процессора
Слайд 10

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

Основные отличия C# от C++

Использование указателей ограничено областями небезопасного кода. Вместо

указателей на функции используется механизм специальных методов – делегатов
В С# структуры являются размерными типами данных, а классы – ссылочными
Добавлены новые операторы и ключевые слова is, as, ref, out, foreach. В операторе try-catch добавлен блок finally
Слайд 11

Типы данных в C#

Типы данных в C#

Слайд 12

Общая схема системы типов

Общая схема системы типов

Слайд 13

Целые типы

Целые типы

Слайд 14

Типы с плавающей точкой Тип decimal Вещественные типы

Типы с плавающей точкой
Тип decimal

Вещественные типы

Слайд 15

Структуры Сходны с классами. Отличие: являются типом значения Структуры передаются по

Структуры

Сходны с классами. Отличие: являются типом значения
Структуры передаются по значению,

а не по ссылке
Объявление структуры подобно объявлению класса:
public struct Point
{ public int x, y;
public Point(int p1, int p2)
{ x = p1; y = p2; }
}
Слайд 16

Все значения являются объектами Все типы значений представлены соответствующими типами .NET

Все значения являются объектами

Все типы значений представлены соответствующими типами .NET Framework

из пространства имен System. Они наследуются от класса ValueType
Для каждого значения поддерживается соответствующий "упакованный" (boxed) тип, который является классом, реализующим то же поведение и содержащим те же данные
Если требуется передать значение по ссылке, оно автоматически упаковывается (box) в соответствующий упакованный тип, а по прибытии при необходимости распаковывается (unbox). Находясь в упакованном виде, тип может использовать все методы класса System.ValueType
Например, допустима следующая конструкция:
string s = 2004.ToString();

!

Слайд 17

Классы наследники от ValueType System.Object System.ValueType System.Byte System.Char System.Decimal System.Boolean System.Double System.Int16 System.Single System.DateTime System.Enum System.Void

Классы наследники от ValueType

System.Object System.ValueType
System.Byte
System.Char
System.Decimal
System.Boolean
System.Double
System.Int16
System.Single
System.DateTime
System.Enum
System.Void


Слайд 18

Базовые выражения и операторы C#

Базовые выражения и операторы C#

Слайд 19

Операции

Операции

Слайд 20

Операции (продолжение)

Операции (продолжение)

Слайд 21

Операторы (продолжение)

Операторы (продолжение)

Слайд 22

Математические операции

Математические операции

Слайд 23

Унарные операции

Унарные операции

Слайд 24

Составные операции

Составные операции

Слайд 25

Поразрядные операции

Поразрядные операции

Слайд 26

Логические операции

Логические операции

Слайд 27

Операции отношения

Операции отношения

Слайд 28

Управляющие операторы

Управляющие операторы

Слайд 29

Управляющие операторы

Управляющие операторы

Слайд 30

Операторы AS,IS,TYPEOF .

Операторы AS,IS,TYPEOF

.

Слайд 31

Трансляция программ на C# Визуальная среда разработки Microsoft Visual Studio.Net Пакетный

Трансляция программ на C#

Визуальная среда разработки Microsoft Visual Studio.Net
Пакетный транслятор, входящий

в Microsoft.Net Framework SDK (доступен для бесплатной загрузки)
Среда SharpDevelop (доступна для бесплатной загрузки)
Слайд 32

Программа Hello, C# world! using System; namespace Hello { class HelloApp

Программа Hello, C# world!

using System;
namespace Hello
{
class HelloApp
{


public static int Main(string[] args)
{
Console.WriteLine(“Hello, C# world”);
Console.ReadLine();
return 0;
}
}
}
Слайд 33

Запуск программы Hello, C# world Набираем текст программы в любом текстовом

Запуск программы Hello, C# world

Набираем текст программы в любом текстовом редакторе
Сохраняем

его с именем hello.cs в директории C:\Temp
В командной строке набираем
C:\...\Framework\v1.1\csc.exe hello.cs
Запускаем сгенерированный hello.exe
Наша первая программа работает!
Слайд 34

Работа с консолью Для работы с консолью в .NET Framework используется

Работа с консолью

Для работы с консолью в .NET Framework используется

класс System.Console
Все его методы класса Console являются статическими, (не нужно создавать его экземпляр)
Класс ответственен за ввод, вывод и вывод ошибок
По умолчанию ввод/вывод производится на стандартную консоль, либо вообще не производится, если консоль отсутствует
Слайд 35

Метод Read Читает символ из потока ввода Возвращает код прочитанного символа

Метод Read

Читает символ из потока ввода
Возвращает код прочитанного символа

(значение типа int), либо -1, если ничего прочитано не было.
Пример:
do
{
int i = Console.Read();
if (i != -1) Console.WriteLine("{0} ({1})", (char)i, i); else break;
} while (true);
Слайд 36

Метод Write Предназначен для вывода на экран Определен для всех базовых

Метод Write

Предназначен для вывода на экран
Определен для всех базовых типов
Console.Write(1);
Console.Write(3.14159265);
Console.Write("Строка");
Поддерживает

форматированные строки
При форматировании может применяться ряд модификаторов, например, вместо "{n}" подставляется n-й входной параметр
Console.Write("Привет, {0}", Name);
Слайд 37

Windows Forms.Функциональность Windows Forms предоставляет .NET классы с готовыми компонентами пользовательского

Windows Forms.Функциональность

Windows Forms предоставляет .NET классы с
готовыми компонентами пользовательского
интерфейса,

пригодными для большинства
настольных приложений. Поддерживаются
следующие функциональности:
меню
панели инструментов и строки состояния
печать и предварительный просмотр
размещение элементов управления ActiveX
упрощенный доступ к БД и Web-службам.
Это богатый и обширный набор функциональности.
Слайд 38

Помощь .NET при создании приложений Среда Visual Studio.NET содержит удобные средства

Помощь .NET при создании приложений

Среда Visual Studio.NET содержит удобные средства разработки

Windows-приложений, например:
создание шаблонов приложения и форм;
создание заготовок обработчиков событий.
Библиотека классов .NET включает пространство имен System.Windows.Forms, содержащее огромное количество типов - строительных блоков Windows-приложений, например:
Application
Button, CheckBox, DataGrid, GroupBox, ListBox, PictureBox
Form
ColorDialog, FileDialog, FontDialog
Menu, MainMenu, MenuItem
Clipboard, Help, Timer, Screen, Cursors
StatusBar, ToolBar, ScrollBar
Слайд 39

Создание Windows-приложения

Создание Windows-приложения

Слайд 40

Создание Windows-приложения Процесс создания Windows-приложения состоит из двух основных этапов: визуальное

Создание Windows-приложения

Процесс создания Windows-приложения состоит из двух основных этапов:
визуальное

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

Окно свойств Задание свойств выполняется либо выбором имеющихся в списке вариантов,

Окно свойств

Задание свойств выполняется либо выбором имеющихся в списке вариантов, либо

вводом требуемого значения с клавиатуры.
Если около имени свойства стоит значок +, это означает, что свойство содержит другие свойства. Они становятся доступными после щелчка на значке.

View Properties Window

Слайд 42

Размещение компонента на форме Создать экземпляр соответствующего класса (код создается автоматически

Размещение компонента на форме

Создать экземпляр соответствующего класса
(код создается автоматически при

размещении компонента на заготовке формы)
Настроить свойства экземпляра, в том числе зарегистрировать обработчик событий
(через окно свойств)
Поместить экземпляр в коллекцию компонентов формы
(автоматически)
Слайд 43

Определение поведения программы Определение поведения программы начинается с принятия решений, какие

Определение поведения программы

Определение поведения программы начинается с принятия решений, какие действия

должны выполняться при щелчке на кнопках, вводе текста, выборе пунктов меню и т. д. (по каким событиям будут выполняться действия, реализующие функциональность программы).
Заготовка шаблона обработчика события формируется двойным щелчком на поле, расположенном справа от имени соответствующего события на вкладке Events окна свойств, при этом появляется вкладка окна редактора кода с заготовкой соответствующего обработчика.
Для каждого класса определен свой набор событий, на которые он может реагировать.
Слайд 44

Часто используемые события Activated — получение формой фокуса ввода; Click, DoubleClick

Часто используемые события

Activated — получение формой фокуса ввода;
Click, DoubleClick — одинарный и двойной

щелчки мышью;
Closed — закрытие формы;
Load — загрузка формы;
KeyDown, KeyUp — нажатие и отпускание любой клавиши и их сочетаний;
KeyPress — нажатие клавиши, имеющей ASCII-код;
MouseDown, MouseUp — нажатие и отпускание кнопки мыши;
MouseMove — перемещение мыши;
Paint — возникает при необходимости прорисовки формы.
Слайд 45

Примеры обработчиков событий private void Form1_Load(object sender, EventArgs e) { rnd

Примеры обработчиков событий

private void Form1_Load(object sender, EventArgs e)
{
rnd = new

Random();
i = rnd.Next(max);
}
private void Exit_Click(object sender, EventArgs e)
{ // имя пункта меню - Exit
Close();
// или:
// Application.Exit();
}
Слайд 46

Виды окон Модальное окно не позволяет пользователю переключаться на другие окна

Виды окон

Модальное окно не позволяет пользователю переключаться на другие окна

того же приложения, пока не будет завершена работа с текущим окном.
В виде модальных обычно оформляют диалоговые окна, требующие от пользователя ввода какой-либо информации.
Немодальное окно позволяет переключаться на другие окна того же приложения. Немодальные окна являются, как правило, информационными. Они используются в тех случаях, когда пользователю желательно предоставить свободу выбора — оставлять на экране какую-либо информацию или нет.
Каждое приложение содержит одно главное окно. Класс главного окна приложения содержит точку входа в приложение (статический метод Main). При закрытии главного окна приложение завершается.
Вид окна определяет его функциональность, например, окно с одинарной рамкой не может изменять свои размеры.
Слайд 47

Диалоговые окна Диалоговое окно характеризуется: неизменяемыми размерами (FormBorderStyle = FixedDialog); отсутствием

Диалоговые окна

Диалоговое окно характеризуется:
неизменяемыми размерами (FormBorderStyle = FixedDialog);
отсутствием кнопок восстановления и свертывания

в правом верхнем углу заголовка формы (MaximizeBox = False, MinimizedBox = False);
наличием кнопок наподобие OK, подтверждающей введенную информацию, и Cancel, отменяющей ввод пользователя, при нажатии которых окно закрывается (AcceptButton = имя_кнопки_OK, CancelButton = имя_кнопки_Cancel);
установленным значением свойства DialogResult для кнопок, при нажатии которых окно закрывается.
Для отображения диалогового окна следует создать экземпляр объекта соответствующей формы, а затем вызвать для этого объекта метод ShowDialog.
Слайд 48

Пример отображения диалогового окна private void menuItem1_Click( object sender, EventArgs e

Пример отображения диалогового окна

private void menuItem1_Click( object sender, EventArgs e )
{

Form2 f = new Form2(); // создание экземпляра класса окна
if ( f.ShowDialog() == DialogResult.OK ) // отображение окна
label1.Text = f.Info;
}
private void menuItem2_Click( object sender, EventArgs e )
{ Close(); // закрытие главного окна
}
Слайд 49

Технология доступа к данным ADO.NET — основная модель доступа к данным

Технология доступа к данным

ADO.NET — основная модель доступа к данным для

приложений, основанных на Microsoft.Net
Обеспечивает эффективное взаимодействие с распространенными типами СУРБД

Приложение на .Net

База
Данных

ADO .NET

Слайд 50

Доступ к данным. Модель ADO.NET .NET Framework включает свою собственную технологию

Доступ к данным. Модель ADO.NET

.NET Framework включает свою собственную технологию доступа

к данным — ADO.NET.
ADO.NET состоит из управляемых классов, позволяющих приложениям .NET подключаться к источникам данных (обычно реляционным базам данных), выполнять команды и управлять автономными данными.
Особенность ADO.NET заключается в том, что эта технология позволяет писать более-менее одинаковый код для доступа к данным — как в Web-приложениях, так и в клиент-серверных настольных приложениях, или даже в однопользовательских приложениях, подключаемых к локальной базе данных.
Слайд 51

Основные классы Connection Command DataReader Transaction Parameter

Основные классы

Connection
Command
DataReader
Transaction
Parameter