Платформа. NET. Работа с методами. ООП в C #. Делегаты и события. Windows Forms. Элементы управления и их создание.
.NET Framework
CLR (Common Language Runtime)
Выполнение программы на .NET
Идеология
Схема выполнения .NET-приложения в среде CLR
Язык от Microsoft, Intel, HP
Некоторые отличия C# от C++
Некоторые отличия C# от C++
Основные отличия C# от C++
Типы данных в C#
Общая схема системы типов
Целые типы
Вещественные типы
Структуры
Все значения являются объектами
Классы наследники от ValueType
Базовые выражения и операторы C#
Операции
Операции (продолжение)
Операторы (продолжение)
Математические операции
Унарные операции
Составные операции
Поразрядные операции
Логические операции
Операции отношения
Управляющие операторы
Управляющие операторы
Операторы AS,IS,TYPEOF
Трансляция программ на C#
Программа Hello, C# world!
Запуск программы Hello, C# world
Работа с консолью
Метод Read
Метод Write
Windows Forms.Функциональность
Помощь .NET при создании приложений
Создание Windows-приложения
Создание Windows-приложения
Окно свойств
Размещение компонента на форме
Определение поведения программы
Часто используемые события
Примеры обработчиков событий
Виды окон
Диалоговые окна
Пример отображения диалогового окна
Технология доступа к данным
Доступ к данным. Модель ADO.NET
Основные классы
Спасибо за внимание!
2.15M
Category: programmingprogramming

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

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

Развертывание
приложений. Принципы работы с
данными. Введение в ADO.NET
321
Современные технологии
программирования

2. .NET Framework

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

3. CLR (Common Language Runtime)

3
CLR (Common Language Runtime) – Среда
Времени Выполнения или Виртуальная машина.
Обеспечивает выполнение сборки. Основной
компонент .NET Framework.

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

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

5. Идеология

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

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

6

7. Язык от Microsoft, Intel, HP

7
Язык на котором написана платформа .NET
Framework
Результат эволюции языков программирования
С# - “на пол тона выше” С++

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

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

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

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

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

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

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

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

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

12

13. Целые типы

13
Название
типа
Диапазон значений
Размер
sbyte
-128..127
Знаковое 8-битное целое
byte
0..255
Беззнаковое 8-битное целое
char
U+0000..U+FFFF
16-битный Unicode-символ
short
-32 768..32 767
Знаковое 16-битное целое
ushort
0..65535
Беззнаковое 16-битное
целое
int
-2 147 483 648..2 147 483 647
Знаковое 32-битное целое
uint
0..4 294 967 295
Беззнаковое 32-битное
целое
long
-9 223 372 036 854 775 808..
9 223 372 036 854 775 807
Знаковое 64-битное целое
ulong
0..18 446 744 073 709 551 615
Беззнаковое 64-битное
целое
13

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

14
Типы с плавающей точкой
Название
типа
Диапазон значений
Float
+1.5E-45..+3.4E38
Double
+5.0E-324..+1.7E308
Точность
7 знаков
15-16 знаков
Тип decimal
Название
типа
Decimal
Диапазон значений
1.0E-28 to 7.9E28
Точность
28-39 знаков

15. Структуры

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

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

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

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

17
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#

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

19. Операции

19
Арифметические
+
-
*
/
%
Логические (булевые,
побитовые)
Катенация строк
& | ^ !
true false
+
~
&&
Инкремент, декремент
++
--
Сдвиг
<<
>>
Отношение
==
>=
!=
>
<=
<
||

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

20
Присваивание
Доступ к члену
= += -= *= /=
%= &= |= ^=
<<= >>=
.
Индексация
[]
Условие
?:
Катенация и добавление
делегата
+
-

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

21
Создание объекта
new
Информация о типе
as is sizeof
typeof
checked unchecked
Контроль
переполнения
Адресация
*
->
[]
&

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

22
Символ
Оператор
+
Сложение
-
Вычитание
*
Умножение
/
Деление
%
Остаток от целоч.
деления

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

23
Символ
Оператор
+
Унарный плюс
-
Унарный минус
++
Инкремент
--
Декремент
!
Унарное логическое отрицание
~
Унарная поразрядная операция
дополнения
(…)
Преобразование типа выражения

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

24
Символ
Оператор
+=
-=
*=
Сложение и присваивание
/=
%=
&=
=
Деление и присваивание
^=
Логическое ИСКЛЮЧАЮЩЕЕ ИЛИ и присваивание
<<=
>>=
Сдвиг влево и присваивание
Вычитание и присваивание
Умножение и присваивание
Вычисление остатка от деления и присваивание
Логическое И и присваивание
Логическое ИЛИ и присваивание
Сдвиг вправо и присваивание

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

25
Символ
Оператор
&
Логическое либо побитовое И
Логическое либо побитовое ИЛИ
^
Логическое либо побитовое
ИСКЛЮЧАЮЩЕЕ ИЛИ
~
Унарная поразрядная операция
дополнения
<<
Сдвиг влево
>>
Сдвиг вправо

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

26
Символ
Оператор
&&
Логический оператор И
Логический оператор ИЛИ
!
Унарное логическое отрицание

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

27
Символ
Оператор
==
Равно
!=
Не равно
<
Меньше
<=
Меньше или равно
>
Больше
>=
Больше или равно

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

28
Оператор
Назначение
Пример
if …else
Оператор
условного
перехода
if (a > b) Console.WriteLine ("a > b");
else Console.WriteLine("a <= b");
switch
Оператор
ветвления
goto
Оператор
безусловного
перехода
for
Оператор
цикла
while
Оператор
цикла с
предусловием
switch (a)
{case 1:{Console.WriteLine("A= 1");
break;}
case 2:{Console.WriteLine("A= 2");
break;}
default: {Console.WriteLine("A <> 0 и
A <> 1"); break;}}
Exit:

goto Exit;
for (int i = 0; i < 10; i++) sum +=
array[i];
while (x > 0) {i++; x--;}

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

29
Оператор
foreach
Назначение
Пример
Оператор цикла
для работы с
массивами и
контейнерами
int [ ] nums = {2,4,8,16,32};
foreach (int j in nums)
{Console.WriteLine("j = {0}",j )};
do
Оператор цикла
с постусловием
continue
Выполнение
цикла сначала
break
Прерывание
выполнения
цикла
return
Возврат
управления из
метода
string s = "A, B, C, D";
do {s=s.Substring(s.IndexOf(",")+1);
Console.WriteLine("s = {0}", s );}}
while (s.Length > 2);
for (i=0;;i++)
{ Console.WriteLine("{0}",i);
if(i<9) continue;
else break; }

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

30
as
.
public static void Main() {
object [ ] myObjects = new object[3];
myObjects[0] = "hello"; myObjects[1] = 123; myObjects[2] = 123.4;
for (int i=0; i<myObjects.Length; ++i) {string s = myObjects[i] as
string;
Console.Write ("{0}:", i);
if (s != null) Console.WriteLine ( "'" + s + "'" );
else Console.WriteLine ( "not a string" );}}
is
public static void Main() {
object [] myObjects = new object[3];
myObjects[0] = "hello"; myObjects[1] = 123; myObjects[2] = 123.4;
for (int i=0; i<myObjects.Length; ++i) { Console.Write("{0}:", i);
if (myObjects[i] is string) Console.WriteLine ( “it is a string" );}}
typeof
public static void Main() {
Type t = typeof(MyClass);}
// альтернативой будет следующая конструкция
// MyClass t1 = new MyClass();
// Type t = t1.GetType();

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

31
Визуальная среда разработки Microsoft Visual
Studio.Net
Пакетный транслятор, входящий в Microsoft.Net
Framework SDK (доступен для бесплатной
загрузки)
Среда SharpDevelop (доступна для бесплатной
загрузки)

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

32
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

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

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

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

35. Метод Read

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

36. Метод Write

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

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

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

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

38
Среда 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-приложения

39

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

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

41. Окно свойств

41
1
2
3
4
View Properties Window
Задание свойств
выполняется либо
выбором имеющихся в
списке вариантов, либо
вводом требуемого
значения с клавиатуры.
Если около имени
свойства стоит значок +,
это означает, что
свойство содержит
другие свойства. Они
становятся доступными
после щелчка на значке.

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

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

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

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

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

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

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

45
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. Виды окон

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

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

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

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

48
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. Технология доступа к данным

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

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

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

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

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

52. Спасибо за внимание!

321
Современные технологии
программирования
English     Русский Rules