Введение в C# Подготовка занятия: А.Д.Фирсов phirsof@mail.ru phirsof@mail.ru Контроль качества: К.В.Рундуев runduev@mail.ru.

Презентация:



Advertisements
Похожие презентации
Перегрузка операторов x = a + b результат 1-й операнд2-й операнд оператор По количеству операндов операторы делятся на: унарные (один операнд) бинарные.
Advertisements

1 ©Павловская Т.А. Язык С# Курс «С#. Программирование на языке высокого уровня» Павловская Т.А.
Практическое программирование на Java к.ф.-м.н. Козлов Дмитрий Дмитриевич Кафедра АСВК, Лаборатория Вычислительных комплексов.
Учебный курс Объектно-ориентированный анализ и программирование Лекция 7 Методы как средство реализации операций Лекции читает кандидат технических наук.
©ρŧą Базовые конструкции языка.
©Павловская Т.А. (СПбГУ ИТМО) Курс «С#. Программирование на языке высокого уровня» Павловская Т.А.
Учебный курс Объектно-ориентированный анализ и программирование Лекция 4 Трансформация логической модели в программный код Лекции читает кандидат технических.
Платформа. NET. Работа с методами. ООП в C #. Делегаты и события. Windows Forms. Элементы управления и их создание. Развертывание приложений. Принципы.
Лекция 2 Раздел 2.1 Windows Phone Темы раздела 3.
Синтаксис языка Java. Символы и синтаксис Перевод строчки эквивалентен пробелу Регистр в именах различается.
VISUAL BASIC Переменные: тип, имя, значение.. Переменные: тип, имя, значение Программируем на Visual Basic Переменная – это величина, имеющая имя, тип.
1 Обработка исключений в Java Одно из важнейших преимуществ Java – разработанный на уровне языка механизм обработки исключений. Исключение в Java - это.
Обработка исключительных ситуаций Исключительная ситуация (исключение) – это ошибка, возникающая во время выполнения программы. Например, ошибка работы.
Язык программирования C# Дмитрий Сошников
Кафедра ОСУ, Java 2004 Слайд 1 Наследование Наследование позволяет использовать существующий класс для определения новых классов, т.е. способствует.
Краткое введение в язык программирования С Аксёнов Сергей Владимирович к.т.н., доцент каф.ОСУ ТПУ Томский политехнический университет.
Обработка исключений Основы метапрограммированияОбработка исключений Основы метапрограммирования.
Лекция 3 Раздел 3,1 Windows Phone Темы раздела 3.
«Ветвление» в VB If условие Then Действия End If If условие Then Действия 1 Else Действия 2 End If.
Урок повторения по теме: «Сила». Задание 1 Задание 2.
Транксрипт:

Введение в C# Подготовка занятия: А.Д.Фирсов Контроль качества: К.В.Рундуев

Курс SE MSF.NET Введение в C# 2 План занятия План занятия Отличие C# от С++ Отличие C# от С++ Типы данных Типы данных Базовые выражения и операторы Базовые выражения и операторы Программа Hello, C# world Программа Hello, C# world Консольное приложение Консольное приложение Windows приложение Windows приложение Исключения Исключения

Курс SE MSF.NET Введение в C# 3 Новый язык от Microsoft, Intel, HP Язык на котором написана платформа.NET Framework Язык на котором написана платформа.NET Framework Результат эволюции языков программирования Результат эволюции языков программирования С# - на пол тона выше С++ С# - на пол тона выше С++ А впрочем, можете программировать на Java А впрочем, можете программировать на Java

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

Курс SE MSF.NET Введение в C# 5 Некоторые отличия C# от C++ Все данные делятся на ссылочные и размерные Все данные делятся на ссылочные и размерные Ссылочные хранятся в общем пуле памяти, а размерные могут храниться в стеке метода Ссылочные хранятся в общем пуле памяти, а размерные могут храниться в стеке метода Данные типа bool могут принимать только два значения true и false, при этом не допускается преобразование этого типа в другие Данные типа bool могут принимать только два значения true и false, при этом не допускается преобразование этого типа в другие Разрядность каждого типа данных не зависит от ОС и процессора Разрядность каждого типа данных не зависит от ОС и процессора

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

Курс SE MSF.NET Введение в C# 7 Типы данных в C#

Курс SE MSF.NET Введение в C# 8 Целые типы Название типа Диапазон значенийРазмер sbyte Знаковое 8-битное целое byte0..255Беззнаковое 8-битное целое charU U+FFFF16-битный Unicode-символ short Знаковое 16-битное целое ushort Беззнаковое 16-битное целое int Знаковое 32-битное целое uint Беззнаковое 32-битное целое long Знаковое 64-битное целое ulong Беззнаковое 64-битное целое

Курс SE MSF.NET Введение в C# 9 Типы с плавающей точкой Типы с плавающей точкой Тип decimal Тип decimal Название типа Диапазон значенийТочность Float+1.5E E387 знаков Double+5.0E E знаков Название типа Диапазон значенийТочность Decimal1.0E-28 to 7.9E знаков

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

Курс SE MSF.NET Введение в C# 11 Одномерные массивы Одномерные массивы Объявление: Объявление: int[ ] arraysize=10; int[ ] arraysize=10; int[ ] array0 = new int[arraysize]; int[ ] array0 = new int[arraysize]; int[ ] array1 = {1, 2, 3, 4, 5}; int[ ] array1 = {1, 2, 3, 4, 5}; Доступ к элементам: Доступ к элементам: int element = array1[0]; int element = array1[0]; Нумерация индексов от 0 до N - 1, N - размер массива Нумерация индексов от 0 до N - 1, N - размер массива

Курс SE MSF.NET Введение в C# 12 Многомерные массивы Многомерные массивы Элементы многомерных массивов идентифицируются набором индексов - "координат" в многомерном пространстве Элементы многомерных массивов идентифицируются набором индексов - "координат" в многомерном пространстве Объявление: Объявление: int[,] array = new int[10, 20, 30]; int[,] array = new int[10, 20, 30]; int[,] array = {{1, 2}, {3, 4}}; int[,] array = {{1, 2}, {3, 4}}; Доступ к элементам: Доступ к элементам: int element = array[0, 1, 2]; int element = array[0, 1, 2];

Курс SE MSF.NET Введение в C# 13 Неровные (jagged) массивы Неровные массивы – это массивы массивов (ссылок на массивы) Декларация: int array[ ] [ ] = new int[2]; int array[ ] [ ] = new int[2]; array[0] = new int[4]; array[0] = new int[4]; array[1] = new int[20]; array[1] = new int[20]; Доступ: int element = array[0][1]; int element = array[0][1]; Размеры неровных массивов могут различаться даже в одном измерении. В приведенном примере существует элемент array[1][15], но не существует элемента array[0][15]

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

Курс SE MSF.NET Введение в C# 15 Окно Matrix ClassBrowser для класса ValueType

Курс SE MSF.NET Введение в C# 16 Классы наследники от ValueType System.Object System.ValueType System.Byte System.Byte System.Char System.Char System.Decimal System.Decimal System.Boolean System.Boolean System.Double System.Double System.Int16 System.Int16 System.Single System.Single System.DateTime System.DateTime System.Enum System.Enum System.Void System.Void

Курс SE MSF.NET Введение в C# 17 Базовые выражения и операторы C#

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

Курс SE MSF.NET Введение в C# 19 Операторы (продолжение) Присваивание = += -= *= /= %= &= |= ^= >= Доступ к члену. Индексация[] Условие?: Катенация и добавление делегата + -

Курс SE MSF.NET Введение в C# 20 Операторы (продолжение) Создание объекта new Информация о типе as is sizeof typeof Контроль переполнения checked unchecked Адресация * -> [] &

Курс SE MSF.NET Введение в C# 21 Математические операторы СимволОператор +Сложение -Вычитание *Умножение /Деление % Остаток от целоч. деления

Курс SE MSF.NET Введение в C# 22 Унарные операторы СимволОператор + Унарный плюс - Унарный минус ++ Инкремент -- Декремент ! Унарное логическое отрицание ~ Унарная поразрядная операция дополнения (…)Преобразование типа выражения

Курс SE MSF.NET Введение в C# 23 Составные операторы СимволОператор += Сложение и присваивание -= Вычитание и присваивание *= Умножение и присваивание /= Деление и присваивание %= Вычисление остатка от деления и присваивание &= Логическое И и присваивание = Логическое ИЛИ и присваивание ^= Логическое ИСКЛЮЧАЮЩЕЕ ИЛИ и присваивание = Сдвиг вправо и присваивание

Курс SE MSF.NET Введение в C# 24 Поразрядные операторы СимволОператор & Логическое либо побитовое И Логическое либо побитовое ИЛИ ^ Логическое либо побитовое ИСКЛЮЧАЮЩЕЕ ИЛИ ~ Унарная поразрядная операция дополнения > Сдвиг вправо

Курс SE MSF.NET Введение в C# 25 Логические операторы СимволОператор && Логический оператор И Логический оператор ИЛИ ! Унарное логическое отрицание

Курс SE MSF.NET Введение в C# 26 Операторы отношения СимволОператор == Равно != Не равно < Меньше Больше >= Больше или равно

Курс SE MSF.NET Введение в C# 27 Управляющие операторы ОператорНазначение Пример if …else Оператор условного перехода if (a > b) Console.WriteLine ("a > b"); else Console.WriteLine("a

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

Курс SE MSF.NET Введение в C# 29 Операторы AS,IS,TYPEOF. 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

Курс SE MSF.NET Введение в C# 30 Трансляция программ на C# Визуальная среда разработки Microsoft Visual Studio.Net Визуальная среда разработки Microsoft Visual Studio.Net Пакетный транслятор, входящий в Microsoft.Net Framework SDK (доступен для бесплатной загрузки) Пакетный транслятор, входящий в Microsoft.Net Framework SDK (доступен для бесплатной загрузки) Среда SharpDevelop (доступна для бесплатной загрузки) Среда SharpDevelop (доступна для бесплатной загрузки)

Курс SE MSF.NET Введение в C# 31 Программа Hello, C# world! using System; namespace Hello { class HelloApp class HelloApp{ static void Main() static void Main() { Console.WriteLine(Hello, C# world); Console.WriteLine(Hello, C# world); Console.ReadLine(); Console.ReadLine(); } } }

Курс SE MSF.NET Введение в C# 32 Запуск программы Hello, C# world Набираем текст программы в любом текстовом редакторе Набираем текст программы в любом текстовом редакторе Сохраняем его с именем hello.cs в директории C:\Temp Сохраняем его с именем hello.cs в директории C:\Temp В командной строке набираем В командной строке набираем C:\...\Framework\v1.1\csc.exe hello.csC:\...\Framework\v1.1\csc.exe hello.cs Запускаем сгенерированный hello.exe Запускаем сгенерированный hello.exe Наша первая программа работает!

Курс SE MSF.NET Введение в C# 33 А так наша программа выглядит на MSIL.namespace 'Hello'{.class /* */ private auto ansi beforefieldinit 'HelloApp'.class /* */ private auto ansi beforefieldinit 'HelloApp' extends ['mscorlib'/* */]'System'.'Object'/* */ extends ['mscorlib'/* */]'System'.'Object'/* */ {.method /* */ private hidebysig static {.method /* */ private hidebysig static void 'Main'() cil managed {.entrypoint.maxstack 1 void 'Main'() cil managed {.entrypoint.maxstack 1 IL_0000: /* 72 | (70) */ ldstr "Hello, C# world" /* */ IL_0000: /* 72 | (70) */ ldstr "Hello, C# world" /* */ IL_0005: /* 28 | (0A)00000D */ call void ['mscorlib'/* */]'System'.'Console'/* E */::'WriteLine'(string) /* 0A00000D */ IL_0005: /* 28 | (0A)00000D */ call void ['mscorlib'/* */]'System'.'Console'/* E */::'WriteLine'(string) /* 0A00000D */ IL_000a: /* 28 | (0A)00000E */ call string ['mscorlib'/* */]'System'.'Console'/* E */::'ReadLine'() /* 0A00000E */ IL_000a: /* 28 | (0A)00000E */ call string ['mscorlib'/* */]'System'.'Console'/* E */::'ReadLine'() /* 0A00000E */ IL_000f: /* 26 | */ pop IL_000f: /* 26 | */ pop IL_0010: /* 2A | */ ret IL_0010: /* 2A | */ ret } // end of method 'HelloApp'::'Main' } // end of method 'HelloApp'::'Main'.method /* */ public hidebysig specialname rtspecialname.method /* */ public hidebysig specialname rtspecialname instance void.ctor() cil managed { instance void.ctor() cil managed { // Method begins at RVA 0x2070 // Method begins at RVA 0x2070 // Code size 7 (0x7).maxstack 1 // Code size 7 (0x7).maxstack 1 IL_0000: /* 02 | */ ldarg.0 IL_0000: /* 02 | */ ldarg.0 IL_0001: /* 28 | (0A)00000F */ call instance void ['mscorlib'/* */]'System'.'Object'/* */::.ctor() /* 0A00000F */ IL_0001: /* 28 | (0A)00000F */ call instance void ['mscorlib'/* */]'System'.'Object'/* */::.ctor() /* 0A00000F */ IL_0006: /* 2A | */ ret IL_0006: /* 2A | */ ret } // end of method 'HelloApp'::.ctor } // end of method 'HelloApp'::.ctor } // end of class 'HelloApp' } // end of class 'HelloApp' } // end of namespace 'Hello'

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

Курс SE MSF.NET Введение в C# 35 Окно Matrix ClassBrowser для класса Console

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

Курс SE MSF.NET Введение в C# 37 Метод Write Предназначен для вывода на экран Предназначен для вывода на экран Определен для всех базовых типов Определен для всех базовых типовConsole.Write(1); Console.Write( ); Console.Write("Строка"); Поддерживает форматированные строки Поддерживает форматированные строки При форматировании может применяться ряд модификаторов, например, вместо "{n}" подставляется n-й входной параметр При форматировании может применяться ряд модификаторов, например, вместо "{n}" подставляется n-й входной параметр Console.Write("Привет, {0}", Name);

Курс SE MSF.NET Введение в C# 38 Hello C# World с помощью SharpDevelop Запускаем SharpDeveloper Запускаем SharpDeveloper Создаем новый комбинированный проект Создаем новый комбинированный проект Выбираем тип приложения - WindowsForms Выбираем тип приложения - WindowsForms Помещаем на поле формы Label Помещаем на поле формы Label Изменяем свойства Text: Hello C# World и Font:48 Изменяем свойства Text: Hello C# World и Font:48 Запускаем приложение Запускаем приложение

Курс SE MSF.NET Введение в C# 39 Проект в работе

Курс SE MSF.NET Введение в C# 40 Проект в действии

Курс SE MSF.NET Введение в C# 41 Обработка ошибок Предположим, произошла ошибка и дальнейшее запланированное выполнение программы теряет смысл. Что делать? Предположим, произошла ошибка и дальнейшее запланированное выполнение программы теряет смысл. Что делать? Можно прервать процесс и закончить работу Можно прервать процесс и закончить работу Можно продолжить работу, если в коде, определена стратегия поведения ваварийной ситуации Можно продолжить работу, если в коде, определена стратегия поведения ваварийной ситуации В старых языках программирования приходилось писать многоуровневые проверки с if, что громоздко и неудобно... В старых языках программирования приходилось писать многоуровневые проверки с if, что громоздко и неудобно...

Курс SE MSF.NET Введение в C# 42 Пример обработки ошибки деления на ноль в рамках структурного программирования using System; namespace DivideByZero { class DivideByZero { class DivideByZero { static void Main (string[ ] arg) { static void Main (string[ ] arg) { int i; for (i= -3;i

Курс SE MSF.NET Введение в C# 43 Исключения При возникновении ошибки создается объект, который ее описывает и на его основе выбрасывается исключение При возникновении ошибки создается объект, который ее описывает и на его основе выбрасывается исключение При генерации исключения выполнение текущего кода прекращается. Идет возврат на более высокий уровень. На нем исключение может быть "поймано" и обработано При генерации исключения выполнение текущего кода прекращается. Идет возврат на более высокий уровень. На нем исключение может быть "поймано" и обработано Если исключение не обрабатывается, идет переход на уровень выше и т.д. пока не дойдем либо до обработчика, либо до системного вызова, в котором все исключения обрабатываются Если исключение не обрабатывается, идет переход на уровень выше и т.д. пока не дойдем либо до обработчика, либо до системного вызова, в котором все исключения обрабатываются

Курс SE MSF.NET Введение в C# 44 Синтаксис исключений try { блок команд, в котором может возникнуть ошибка } { блок команд, в котором может возникнуть ошибка } [ catch [(тип_исключения имя_исключения)] [ catch [(тип_исключения имя_исключения)] { блок обработки исключения }] { блок обработки исключения }] [ finally { команды, которые выполняются в любом случае }] [ finally { команды, которые выполняются в любом случае }]

Курс SE MSF.NET Введение в C# 45 Пример using System; namespace DivideByZeroEX { class DivideByZeroEXApp { class DivideByZeroEXApp { static void Main (string[ ] arg){ static void Main (string[ ] arg){ int i=0; try { int j=1/i;} catch (System.Exception ex) { Console.WriteLine (Ошибка в программе {0} [{1}]\n\n{2}, ex.Source, ex.Message, ex.StackTrace); } Console.WriteLine (Ошибка в программе {0} [{1}]\n\n{2}, ex.Source, ex.Message, ex.StackTrace); } Console.ReadLine(); Console.ReadLine();}}} Ссылка на объект класса System.Exeption Имя программы Текст сообщения Строка

Курс SE MSF.NET Введение в C# 46 Еще один пример class ReverseFunction { public static double Calculate( double d ) public static double Calculate( double d ) { if (d == 0) throw new Exception { if (d == 0) throw new Exception ("Function is undefined in 0"); ("Function is undefined in 0"); return 1 / d; } return 1 / d; } public static void Main() { try try {Console.WriteLine("1 / {0} = {1}", 2, Calculate(2)); Console.WriteLine("1 / {0} = {1}", 0, Calculate(0)); Console.WriteLine("1 / {0} = {1}", 1, Calculate(1)); } {Console.WriteLine("1 / {0} = {1}", 2, Calculate(2)); Console.WriteLine("1 / {0} = {1}", 0, Calculate(0)); Console.WriteLine("1 / {0} = {1}", 1, Calculate(1)); } catch (Exception e) { Console.WriteLine("Error:{0}", e); } } } catch (Exception e) { Console.WriteLine("Error:{0}", e); } } } Создаем свой объект

Курс SE MSF.NET Введение в C# 47 И еще один пример И еще один пример Для того, чтобы обработать нужное исключение ставится несколько блоков catch Для того, чтобы обработать нужное исключение ставится несколько блоков catch Вызывается первый блок, чей тип исключения соответствует типу пришедшего исключения Вызывается первый блок, чей тип исключения соответствует типу пришедшего исключения try { CalculateSpline(); } catch (DivisionByZeroException e) { Console.WriteLine("Divizion by 0"); } catch (DivisionByZeroException e) { Console.WriteLine("Divizion by 0"); } catch (OverflowException e) { Console.WriteLine("Overflow"); } catch (OverflowException e) { Console.WriteLine("Overflow"); } catch (Exception e) //Обработка остальных типов исключений catch (Exception e) //Обработка остальных типов исключений { Console.WriteLine("Exception: {0}", e); }

Курс SE MSF.NET Введение в C# 48 Стандартные классы исключений System.DivideByZeroException System.DivideByZeroException System.OverflowException System.OverflowException System.ArrayTypeMismatchException System.ArrayTypeMismatchException System.ArgumentOutOfRangeException System.ArgumentOutOfRangeException System.IO.FileNotFoundException System.IO.FileNotFoundException System.OutOfMemoryException System.OutOfMemoryException System.StackOverflowException System.StackOverflowException А всего их - больше сотни

Курс SE MSF.NET Введение в C# 49 Заключение Существует язык программирования разработанный с учетом особенностей технологии.NET Framework Существует язык программирования разработанный с учетом особенностей технологии.NET Framework Для разработки приложений существуют мощные визуальные средства Для разработки приложений существуют мощные визуальные средства Сам язык достаточно прост для изучения Сам язык достаточно прост для изучения

Курс SE MSF.NET Введение в C# 50 Вопросы для закрепления материала Назовите два отличия C# от C++ Назовите два отличия C# от C++ Почему в C# отсутствуют деструкторы классов? Почему в C# отсутствуют деструкторы классов? Чем транслировать программы на C#? Чем транслировать программы на C#? Зачем необходимо собственное пространство имен? Зачем необходимо собственное пространство имен? Зачем нужна упаковка типов? Зачем нужна упаковка типов? Какие Какие новые типы данных Вы узнали? Опишите назначение оператора foreach Что такое исключение? Что такое исключение?

Курс SE MSF.NET Введение в C# 51 Учебник по C# Учебник по C# Джесс Либерти Программирование на C# 2е изд. СПб-М., Символ, 2003 Джесс Либерти Программирование на C# 2е изд. СПб-М., Символ, 2003 Троелсен Э. C# и платформа.NET. Библиотека программиста. – СПб.: Питер, 2002 Троелсен Э. C# и платформа.NET. Библиотека программиста. – СПб.: Питер, 2002 Фролов А.В., Фролов Г.В. Язык C#. Самоучитель.-М.: ДИАЛОГ-МИФИ, 2003 Фролов А.В., Фролов Г.В. Язык C#. Самоучитель.-М.: ДИАЛОГ-МИФИ, 2003 Ссылки

Курс SE MSF.NET Введение в C# 52 В качестве фона к слайдам использовано изображение космического аппарата Океан-О. Такие спутники изготавливает расположенный в Днепропетровске завод ЮМЗ