C# История. Особенности языка
История С# • Язык сочетает объектноориентированные и контекстноориентированные концепции • Разработан в 1998 -2001 г. (Андерс Хейлсберг) • Основной язык платформы Microsoft. NET 2
Цели разработчиков • Упростить С++, сохранив его мощь и основные конструкции • Объектно-ориентированный язык • Исключить проблематичные модели при разработке программ 3
Microsoft. NET • Программная технология, платформа для создания программ и веб-приложений • Основная идея: совместимость различный служб, написанных на разных языках программирования • Делится на 2 части: среда выполнения и инструментарий разработки (библиотека классов общая для всех языков) 4
Microsoft. NET • • • . NET Framework 1. 0 (2002). NET Framework 1. 1 (2003). NET Framework 2. 0 (27. 10. 2005). NET Framework 3. 0 (6. 11. 2006) Языки: C#, J#, VB, Jscript, C++ 5
Функционирование. NET 6
Функционирование. NET • Компиляция программы: csc. exe prog. cs • Исполняемый файл состоит из операторов MSIL • При запуске программы среда CLR (common language runtime) компилирует промежуточный язык в «родной» для данного процессора • Создается управляемый код - может исследоваться и анализироваться другими 7 программами
Microsoft Visual Studio • • Линейка продуктов Microsoft Visual Studio 97 Visual Studio 6. 0 (1998) Visual Studio. NET (2002) Visual Studio 2003 Visual Studio 2005 под Windows Vista 8
CLR • Входит в технологию. NET • Обеспечивает переносимость программ • Транслирует промежуточный MSIL код в исполняемый с использованием JITкомпилятора • Контроль выполнения управляемого кода, памятью, потоками, безопасностью, «сборка мусора» 9
Требования к системе • • • Microsoft. NET Framework SDK Microsoft Visual Studio. NET Windows NT, 2000, Xp, Vista Pentium II, 450 RAM 64 -256 Mb 10
Начало работы с C# 11
12
13
14
15
16
17
18
19
20
Типы данных в C# 21
Простые типы данных в C# 22
Оператор IF • if (условие) выражение • <, >, =>, <=, ==, != Цикл FOR • for (инициализация, условия, итерации) выражение Цикл FOREACH float[] arr={1. 2, 5. 2, 7. 4} foreach (float f in arr) for (int i=0; i<arr. length; i++) Console. Write(“{0} “, f ); Console. Write(“{0} “, arr[i] ); 23
Оператор switch(expression) { case constant 1: statement sequence; break; case constant 2: … default: statement sequence; break; } Циклы while и do-while 24
ESC-последовательности 25
Ключевые слова C# 26
Оператор вывода и его форматирование • • Console. Write. Line(“string 1“+int+”string 2“); Console. Write. Line(“в марте”+31+”день”); Console. Write. Line(“string”, arg 1, arg 2, . . , argn); Console. Write. Line(“в феврале {0} и {1} дней ”, 28, 29); • Console. Write. Line(“в феврале {0, 3} и {1, 5} дней, ”, 28, 29); • Console. Write. Line(“ 10/3={0: #. ##}”, 10. 0/3. 0); 27
Операторы 28
Приоритетность операторов 29
Приведение типов 30
Массивы • • • type[] array-name = new type[size]; int[] sample = new int[10]; int[] nums={1, 3, 4, 6, 2, 7, 6, 8, 9}; int[, ] table = new int[3, 4]; double[, , ] mas=new double[5, 10, 20]; Невыровненные массивы type[][] array-name=new type[size][]; int[][] wr=new int[3][]; wr[0]=new int[6]; wr[1]=new int[4]; wr[2]=new int[56]; 31