- •Ilasm. Применение утилит ildasm и Reflector. Внутреннее устройство сборок Microsoft .Net.
- •Использование атрибутов
- •Библиотека классов Microsoft .Net Framework. Примеры использования библиотеки классов.
- •Библиотека классов .Net Framework
- •Директивы using и ссылки
- •Библиотеки классов ввода/вывода пространства имен System.Io. Примеры использования.
- •Применение экспортированных функций dll
- •Оператор for
- •В отличие от оператора for оператор while никак не изменяет значения пере-
- •Делегаты и события на платформе Microsoft .Net.
- •Компонентное программирование в .Net
- •13(2). Компонентное программирование в .Net (1)
- •Концепция применения программных платформ. Преимущества применения программных платформ при разработке приложений (на примере Microsoft .Net)
- •Visual Studio .Net набор языков платформы Microsoft .Net послужит отличным под-
- •Компилятор jit
- •Объектно-ориентированный подход к программированию. Классы и объекты. Определения; Определения классов и объектов. Проблемы, решаемые этим подходом.
- •Плюсы ооп:
- •Оператор switch
- •Возврат goto
- •Основные операторы языка c#
- •Работа с файлами в языке с#. Синтаксис, алгоритм работы при чтении/записи в файл.
- •Синхронизация потоков (interlocked-функции и критические секции). Основные проблемы синхронизации.
- •Строгая и нестрогая типизация, характеристики типов данных. Определение типа данных.
- •Разработка Windows-приложений с использованием технологии Windows Forms. Основные идеи технологии. Примеры эффективного применения.
- •Ide Visual c# автоматически создает код инициализации. В представлении Код найдите конструктор для класса Form1. У него есть подпись public Form1().
Применение экспортированных функций dll
-
Идентифицируйте функции в DLL.
Как минимум, должно быть указано имя функции и имя библиотеки DLL, содержащей функцию.
-
Создайте класс для хранения функций DLL.
Можно использовать существующий класс, создать отдельный класс для каждой неуправляемой функции либо создать один класс для всего набора связанных неуправляемых функций.
-
Создайте прототипы в управляемом коде.
[Visual Basic] Используйте инструкцию Declare с ключевыми словами Function и Lib.В некоторых редких случаях можно использовать классDllImportAttribute с ключевыми словами Shared Function.Эти случаи объясняются далее в этом разделе.
[C#] Чтобы идентифицировать DLL и функцию, используйте класс DllImportAttribute.Пометьте метод модификаторами static и extern.
[C++] Чтобы идентифицировать DLL и функцию, используйте класс DllImportAttribute.Пометьте метод или функцию оболочки модификатором extern "C".
-
Вызовите функцию DLL.
Пример использования функции MessageBox c++ Win32 API из user32.dll
public class Win32
{
[DllImport("user32.dll", CharSet = CharSet.Auto)]
public static extern IntPtr MessageBox(int hWnd, String text, String caption, uint type);
}
public class HelloWorld
{
public static void Main()
{
Win32.MessageBox(0, "Hello World", "Platform Invoke Sample", 0);
}
}
-
Виды циклов в языке С#. Синтаксис, объявление, применение циклов в языке С#.
Итерационные операторы
Итерационные операторы применяются в программах С# для выполнения каких-либо
повторяющихся действий, т. е. для организации циклов. Иногда эти операторы назы-
называются циклическими.
В этом разделе мы расскажем об использовании итерационных операторов for,
while, do и f oreach.
Оператор for
Оператор for предназначен для повторного выполнения оператора или группы опера-
операторов заданное количество раз. Вот как выглядит этот оператор в общем виде:
for ( [Инициализация]; [Условие];[Приращение])
<Оператор>
Оператор [Инициализация] выполняется один раз перед началом цикла.
Перед каждой итерацией (т.е. перед каждым выполнением тела цикла «Эпера-
тор>) проверяется [Условие]. И наконец, после каждой итерации выполняется опе-
оператор [Прирашение].
Как правило, в цикле имеется переменная, играющая роль так называемой пере-
переменной цикла. При каждой итерации переменная цикла изменяет свое значение в за-
заданных пределах.
Начальное значение переменной цикла задается в программе до оператора for или
в операторе [Инициализация]. Предельное значение переменной цикла определяется
оператором приращения, а проверка ее текущего значения — в блоке [ Условие ].
Поясним сказанное на простом примере.
int i ;
forfi = 0; i < 10; i++)
{
System.Console.Write("{0} ",i ) ;
}
Здесь переменная i используется в качестве переменной цикла. Перед началом
цикла ей присваивается нулевое значение. Перед каждой итерацией содержимое пере-
переменной i сравнивается с числом 10. Если i меньше 10, тело цикла выполняется один
раз. В тело цикла мы поместили вызов метода Write, отображающий текущее значе-
значение переменной цикла на консоли.
После выполнения тела цикла значение i увеличивается на единицу в блоке при-
приращения. Далее переменная цикла вновь сравнивается с числом 10. Когда значение i
превысит 10, цикл завершится.
Таким образом, параметр цикла анализируется перед выполнением тела цикла,
а модифицируется после его выполнения.
Вот что выведет на консоль приведенный выше фрагмент программы:
0123456789
Прерывание цикла
С помощью оператора break можно в любой момент прервать выполнение цикла.
Например, в следующем фрагменте программы мы прерываем работу цикла, когда
значение переменной i становится больше пяти:
for(i = 0; i < 10;
if(i > 5)
break;
System. Console. Write (" {0} "',i );
Возобновление цикла
В отличие от оператора break, прерывающего цикл, оператор continue позволяет
возобновить выполнение цикла с самого начала.
Вот как он используется:
for(i = 0;;
System.Console.Write("{0} ",i ) ;
if(i < 9)
continue;
else
break;
}