Использование C#
В этой части будут рассмотрены более практические аспекты использования C#.
Компиляция, отладка и тому подобные вопросы. Начнем с компиляции:
Переходя к более подробному знакомству с C#, традиционно рассмотрим программу
"Hello, world":
using System;
class Hello{
static void Main() {
Console.WriteLine("hello, world");
}
}
|
Поместите эту программу в файл hello.cs и скомпилируйте ее командой
csc hello.cs
Так выглядит вызов компилятора в простейшем случае. Далее мы приведем полный
список параметров компилятора. При вызове компилятора убедитесь, что у вас
прописан путь csc.exe - C Sharp Compiler
В результате вы получите файл hello.exe, запустив который, вы увидите надпись
"hello, world".
Метод Main - это точка входа в программу. С него начинается выполнение (те, кто
знаком с C++ или Java) понимают, о чем идет речь. Этот метод обязательно должен
быть статическим. Далее в нашем примере используется метод WriteLine из класса
System.Console. Этот метод отправляет строку на стандартный вывод.
Вы можете также создавать библиотеки классов - dll-сборки, которые могут
использоваться другими приложениями. Для этого нужно указать /target:library в
опциях компилятора
Если компилятор обнаружит ошибки в программе, он выдаст соответствующее
сообщение и остановит процесс компиляции. Также он может выдать предупреждения
- если он обнаружит код, который, строго говоря, правильный, но имеет
подозрения на ошибку. К таким предупреждениям стоит прислушиваться.
Вообще, компилятор C# имеет множество возможностей, узнать о которых можно из
слеующей таблицы. В ней описаны все опции командной строки компилятора CSC:
Выходные файлы
| /out:<file> |
Имя выходного файла (если не указано - производное от имени первого исходного
файла) |
| /target:exe |
Скомпилировать консольный запускаемый файл (по умолчанию) (Краткая форма:
/t:exe) |
| /target:winexe |
Скомпилировать запускаемый файл Windows (Краткая форма: /t:winexe) |
| /target:library |
Скомпилировать в библиотеку DLL (Краткая форма: /t:library) |
| /target:module |
Скомпилировать модуль, который может быть добавлен в другую конструкцию
(Краткая форма: /t:module) |
* Примечание: Модуль и библиотека имеют одинаковые расширения (DLL), но несмотря
на это, они представляют из себя разные вещи. Библиотека - это классическая
библиотека DLL. Модуль - это файл откомпилированный без создания конструкции
(assembly). В дальнейшем вы можете добавить модуль в любую другую конструкцию
при компиляции (с помощью опции /addmodule).
|
/nooutput[+|-] |
Только проверять ошибки в коде; не создавать запускаемый файл |
|
/define:<список символов> |
Определяет директивы препроцессора (Краткая форма: /d)
Написание csc /define:mark1 MyApp.cs равносильно наличию в файле строки
#define mark1 |
|
/doc:<file> |
Создать XML файл документации |
Входные файлы
|
/recurse:<маска> |
Включить все файлы, удовлетворяющие маске. |
|
/main:<тип> |
Обозначить класс, содержащий точку входа в программу (все остальные будут
игнорироваться) (Краткая форма: /m) |
|
/reference:<список файлов> |
Включить метаданные из указанных файлов конструкций (Краткая форма: /r) |
* Примечание: все данные, помеченные как public, из указаных файлов конструкций
будут включены в данную конструкцию. Если файл не содержит объявления
конструкции, то метаданные из него могут быть включены с помощью /addmodule.
|
/addmodule:<список файлов> |
Включить указанные модули в сборку |
Ресурсы
|
/win32res:<file> |
Добавляет файл ресурсов Win32(.res) в выходной файл |
|
/win32icon:<file> |
Добавляет иконку в выходной файл |
|
/resource:<resinfo> |
Включает .NET ресурс (Краткая форма: /res) |
* Примечание: resinfo являет собой следующую последовательность:
filename[,identifier[,mimetype]], где filename - имя файла ресурса, identifier
- логическое имя ресурса (используется для его загрузки), mimetype - медиа тип
ресурса (обычно отсутствует).
|
/linkresource:<resinfo> |
Создает ссылку на ресурсный файл в данной сборке (не включая его в выходной
файл)(Краткая форма: /linkres) |
Создание кода
|
/debug[+|-] |
Создавать информацию отладки. |
|
/debug:{full|pdbonly} |
Указание типа отладки ('full' - по умолчанию, позволяет прикреплять отладчик к
запускаемой программе) |
|
/optimize[+|-] |
Запускать оптимизацию (Краткая форма: /o) |
|
/incremental[+|-] |
Запускать компиляцию только измененных частей кода(Краткая форма: /incr) |
Ошибки и предупреждения
|
/warnaserror[+|-] |
Относиться к предупреждениям, как к ошибкам |
|
/warn:<n> |
Установить уровень предупреждений (0-4) (Краткая форма: /w) |
|
/nowarn:<список предупреждений> |
Исключить указанные предупреждения |
* Примечание: список предупреждений - последовательность их номеров
num1[,num2[...]]
Язык
|
/checked[+|-] |
Выполнять проверки на переполнения и опустошения |
|
/unsafe[+|-] |
Допускать unsafe код (unsafe код - небезопасный код, он будет обсужден в
дополнительных главах) |
Разное
|
@<file> |
Прочтение команд и опций компилятора из файла |
|
/help |
Показывает информацию о использовании (Краткая форма: /?) |
| /nologo |
Не показывать копирайт при компиляции |
Дополнительно
|
/baseaddress:<address> |
Базовый адрес для создаваемой библиотеки |
|
/bugreport:<file> |
Создавать файл отчета об ошибках |
|
/codepage:<n> |
Указать таблицу символов, для использования во время открытия исходного текста |
| /fullpaths |
Компилятор будет указывать полные имена файлов |
|
/nostdlib[+|-] |
Не допускать включения стандартной библиотеки (mscorlib.dll). В этой библиотеке
хранятся все основные классы .NET Framework. |
Лицензионное соглашение
- © 2000-2010 dotSITE
Хостинг .NET предоставлен
PARKING.RU
Поддержку сайта осуществляет Murano Software Inc., Offshore software development