- •Введение
- •Основные сведения по языку c#
- •Общие сведения о .Net Framework
- •C# и платформа .Net Framework
- •Средства разработки для .Net Framework
- •СредаClr
- •Понятие сборки (assembly)
- •Jit-компиляция
- •Просмотр метаданных
- •Сборка мусора
- •Обзор иср
- •Иср Visual c# Express
- •Стартовая страница
- •Консольное приложение
- •Приложения Windows
- •ИсрVisual Studio .Net
- •ИсрSharpDevelop
- •Основы языка c#
- •Алфавит
- •Комментарии
- •Идентификаторы
- •Ключевые слова
- •Переменные и константы
- •Структура программы на c#
- •Пространства имен
- •Main() и аргументы командной строки
- •Операторы
- •Основные операторы
- •Унарные операторы
- •Аддитивные операторы
- •Мультипликативные операторы
- •Операторы сдвига
- •Операторы отношений
- •Операторы присваивания
- •Арифметическое переполнение
- •Математические операции
- •Литералы
- •Описание
- •Структуры
- •Инкапсуляция
- •Наследование
- •Полиморфиэм
- •Конструкторы
- •Деструкторы
- •Интерфейсы
- •Делегаты
- •Типы значений
- •Ссылочные типы
- •Тип dynamic
- •Тип object
- •Тип string
- •Встроенные базовые типы
- •Типы чисел
- •Типы целых чисел
- •Типы чисел с плавающей запятой
- •Значения типов по умолчанию
- •Преобразования типов
- •Стандартное форматирование чисел
- •Нестандартное форматирование чисел
- •Тип char - символы
- •Тип enum - перечисление
- •Тип DateTime
- •Свойства
- •Задание типов в объявлениях переменных
- •Инструкции, введение
- •Выражения
- •Разделители
- •Решения и ветвления
- •Безусловный переход вызовом функций
- •Ветвление if; else
- •Вложенные ветвления if; else
- •Выбор switch; case
- •Команда goto и метки
- •Цикл for
- •Цикл while
- •Цикл do- while
- •Безусловные переходы
- •Вечные циклы
- •Команда foreach
- •Обработкаошибок и исключений
- •Try, Catch
- •Try, Catch, Finally
- •Работа со строками
- •Представление строк
- •Метод ToString()
- •Доступ к отдельным знакам
- •Массивы и коллекции
- •Коллекции
- •Массивы
- •Использование инструкции foreach, in
- •Графика
- •Объект Graphics
- •Перо (Pen)
- •Кисть (Brush)
- •Шрифты и текст
- •Методы рисования
- •Методы заливки
- •Рисование графика функции
- •Растровая графика
- •Примитивные компоненты
- •Подробнее оCil
- •Ассемблер cil
- •Архитектура виртуальной машиныCil
- •Память для метода
- •Система типовCts
- •Типы в базовых классах .Net, c# и cil
- •Пользовательские типы данных
- •Упакованные типы-значения
- •Виртуальная система выполнения
- •Стек вычислений
- •Автоматическое управление памятью
- •Лексемы в cil
- •Директивы cil
- •Атрибуты cil
- •Коды операций в cil
- •Команды загрузки
- •Команды выгрузки
- •Вычислительные команды
- •Арифметические инструкции
- •Переходы и вызовы в il
- •Трансляция вCil
Примитивные компоненты
Формат метафайл Windows (с расширением *.wmf) хранит картинку в виде набора описаний или определений всех компонент графика и их характеристик (например, отрезков линий, шаблонов заполнения, текста и его атрибутов и т.п.). Как правило, размер метафайла значительно меньше файла растровой графики.
При открытии метафайла график можно "разобрать" на компоненты, выделить и изменить отдельные линии, шаблоны заполнения и цвета, отредактировать текст и изменить его параметры и т.д.
Не во всех приложениях, поддерживающих графический формат метафайла, доступны все характеристики, поддерживаемые стандартным метафайлом Windows (например, некоторые приложения не поддерживают вращение текста, и все метки вертикальных осей, сохраненные в системе STATISTICA в формате метафайла, будут расположены горизонтально при открытии в таких приложениях).
Подробнее оCil
Материал ниже для особо любопытных.
Разработчик CILЛидин Сергей – канадец Российского происхождения.
Ассемблер cil
В составе .NetFramework SDK поставляется ассемблер ILASM, который позволяет компилировать текстовые файлы, содержащие CIL-код и метаданные.
Программы в CIL-формате состоят из следующих лексических элементов:
идентификаторы;
метки;
константы;
зарезервированные слова;
специальные знаки;
комментарии.
Идентификаторычаще всего представляют последовательности символов, начинающиеся слатинскойбуквы (или с символов «_», «$», «@» и «?»), за которой следуют латинские буквы, цифры или символы «_», «$», «@» и «?». Кроме того, для идентификаторов и меток существует особая форма записи в апострофах: она позволяет включать в идентификаторы любые символы Unicode. Например:
Label_1 $Name 'Идентификатор'
Несколько идентификаторов могут быть объединены в один с помощью точек. Например:
System.Console.WriteLine
Меткаприменяется для обозначения точки перехода. Признак метки - двоеточие после имени.
Целочисленные константызаписываются либо в десятичной системе счисления, либо в шестнадцатеричной (тогда перед ними ставится префикс «0x»). Например:
128 -10 0xFF10B000
В вещественных константахточкаиспользуется для разделения целой и дробной части, а символы «e» и «E» служат для указания экспоненциальной части. Кроме того, поддерживается особая форма записи float32 (целая_константа) и float64 (целая_константа), позволяющая представить целое число в виде числа с плавающей точкой. Например:
5.5 -1.05e10 float32(128) float64(50)
Строковые константызаписываются в двойных кавычках и могут содержать Escape-последовательности «\t», «\n» и «\xxx», где восьмеричное число xxx задает код символа от 0 до 255. Для переноса строковой константы на другую строку программы используется символ «\». Кроме того, для строковых констант поддерживается операция конкатенации «+». Например:
“Alpha Beta Gamma” “Hello, World\n” “Concat”+”enation”
КомментариивCIL-программах записываются так же, как в языке C#. Начинаются с символов //. Многострочные комментарии помещаются в пару особых скобок /*…*/.
Синтаксисстроки кода:
Метка команда // комментарии
Следуйте этим рекомендациям:
Все инструкции должны начинаться с метки или пробела.
Метки не обязательны, если они используется, они должны начаться в столбце 1.
Один (или больше) пробелов должно отделять каждое поле. Символы табуляции интерпретируются, как пробелы.
Комментарии необязательны.
Мнемоника не может начинаться с 0 или 1, иначе это будет интерпретироваться, как метка.