Эндрю Троелсен - ЯЗЫК ПРОГРАММИРОВАНИЯ С# 2005 И ПЛАТФОРМА .NET 2.0. 3-е издание
- Название:ЯЗЫК ПРОГРАММИРОВАНИЯ С# 2005 И ПЛАТФОРМА .NET 2.0. 3-е издание
- Автор:
- Жанр:
- Издательство:Издательский дом Вильямс
- Год:2007
- Город:Москва • Санкт-Петербург • Киев
- ISBN:ISBN 5-8459-1124-9
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Эндрю Троелсен - ЯЗЫК ПРОГРАММИРОВАНИЯ С# 2005 И ПЛАТФОРМА .NET 2.0. 3-е издание краткое содержание
В этой книге содержится описание базовых принципов функционирования платформы .NET, системы типов .NET и различных инструментальных средств разработки, используемых при создании приложений .NET. Представлены базовые возможности языка программирования C# 2005, включая новые синтаксические конструкции, появившиеся с выходом .NET 2.0, а также синтаксис и семантика языка CIL. В книге рассматривается формат сборок .NET, библиотеки базовых классов .NET. файловый ввод-вывод, возможности удаленного доступа, конструкция приложений Windows Forms, доступ к базам данных с помощью ADO.NET, создание Web-приложений ASP.NET и Web-служб XML. Книга содержит множество примеров программного кода, призванного помочь читателю в освоении предлагаемого материала. Программный код примеров можно загрузить с Web-сайта издательства.
ЯЗЫК ПРОГРАММИРОВАНИЯ С# 2005 И ПЛАТФОРМА .NET 2.0. 3-е издание - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
using System;
class TestApp {
public static void Main() {
Console.WriteLine("Проверка! 1, 2, 3");
}
}
Завершив ввод, сохраните файл с именем TestApp.cs в подходящем месте на диске (например, в каталоге C:\CscExample). Теперь рассмотрим основные опции компилятора C#. Прежде всего нужно понять, как указывается имя и тип создаваемого компоновочного блока (это может быть, например, консольное приложение с именем MyShell.exe, библиотека программного кода с именем MathLib.dll, приложение Windows Forms с именем MyWinApp.exe и т.д.). Каждая из возможностей обозначается соответствующим флагом, передаваемым в сsc.exe в виде опции командной строки (табл. 2.2).
Таблица 2.2.Опции компилятора C#, указывающие выходные параметры
Опция | Описание |
---|---|
/out | Используется для указания имени создаваемого компоновочного блока. По умолчанию имя компоновочного блока совпадает с именем исходного файла *.cs (в случае *.dll) или с именем типа, содержащего метод Main() программы (в случае *.exe) |
/target:exe | Используется для создания консольного приложения. Данный тип выходного файла подразумевается по умолчанию, поэтому эту опцию при построении консольного приложения можно опустить |
/target:library | Используется для построения одномодульного компоновочного блока *.dll |
/target:module | Используется для построения модуля. Модули являются составляющими многомодульных компоновочных блоков (см. главу 11) |
/target:winexe | Приложения Windows можно строить и с помощью флага /target:exe, но флаг /target:winexe исключает появление окна консоли в фоновом режиме |
Чтобы скомпилировать TestАрр.сs в консольное приложение с именем TestApp.exe, перейдите в каталог, содержащий файл с исходным кодом, и введите следующую строку команд (обратите внимание на то, что флаги командной строки должны быть указаны до имен входных файлов, а не после).
csc /target:exeTestApp.cs
Здесь не указан явно флаг /out, поэтому выполняемый файл будет назван TestApp.exе, поскольку класс определяющий точку входа программы (метод Main()), у нас называется TestApp. Следует знать о том, что почти все флаги компилятора C# имеют сокращенные версии написания. Например, можно использовать /t вместо /target (все сокращения можно увидеть с помощью ввода csс /? в командной строке).
csc /t:exeTestApp.cs
К тому же, поскольку флаг /t:exe определяет вывод, используемый компилятором C# по умолчанию, для компиляции TestApp.cs можно использовать следующую простую строку.
csc TestApp.cs

Рис. 2.1. Приложение TestApp в действии
Ссылки на внешний компоновочный блок
Теперь выясним, как компилировать приложение, использующее типы, определенные в отдельном компоновочном блоке .NET. Здесь, чтобы было ясно, почему при построении указанного выше приложения компилятор C# понял ссылку на тип System.Console, следует вспомнить о том (см. главу 1), что ссылка на mscorlib.dll при компиляции предполагается автоматически. Если же по какой-то особой причине эту ссылку необходимо отключить, следует использовать флаг /nostdlib.
Чтобы иллюстрировать механизм ссылки на внешние компоновочные блоки, мы модифицируем приложение TestApp так, чтобы оно отображало окно сообщения Windows Forms. Откройте файл TestApp.cs и измените его следующим образом.
using System;
// Добавьте это:
using System.Windows.Forms;
class TestApp {
public static void Main() {
Console.WriteLine("Проверка! 1, 2, 3");
// Добавьте это:
MessageBox.Show("Привет…");
}
}
Здесь с помощью ключевого слова using C# (см. главу 1) добавлена ссылка на пространство имен System.Windows.Forms. Напомним, что при явном указании пространств имен, используемых в рамках файла *.cs, нет необходимости использовать абсолютные имена (рукам легче).
В командной строке компилятору csc.exe следует сообщить о том. в каком из компоновочных блоков содержатся "используемые" пространства имен. Так, при использовании класса MessageBox с помощью опции /reference (которую можно "сократить" до /r) следует указать компоновочный блок System.Windows.Forrns.dll.
сsc /r:System.Windows.Forms.dlltestapp.cs
Если теперь снова выполнить наше приложение, то вдобавок к выводу на консоль вы должны увидеть окно, подобное показанному на рис. 2.2.

Рис. 2.2. Ваше первое приложение Windows Forms
Компиляция множества файлов
В данном варианте приложение TestApp.exe использует один файл исходного кода *.cs. Вполне возможно, чтобы все типы .NET-приложения были представлены в одном файле *.cs, но большинство проектов компонуется из множества файлов *.cs, чтобы программный код был более гибким. Создайте новый класс и поместите его в отдельный файл HelloMsg.cs.
// Класс HelloMessage
using System;
using System.Windows.Forms;
class HelloMessage {
public void Speak() {
MessageBox.Show("Привет…");
}
}
Теперь обновите исходный класс ТestApp так, чтобы в нем использовался этот новый тип, а предыдущую логику Windows Forms закомментируйте.
using System;
// Это больше не требуется:
// using System.Windows.Forms;
class TestApp {
public static void Main() {
Console.WriteLine("Проверка! 1, 2, 3");
// И это тоже:
// MessageBox.Show("Привет…");
// Использование класса HelloMessage:
HelloMessage h = new HelloMessage();
h.Speak();
}
}
Скомпилируйте эти файлы C# с помощью их явного указания в качестве входных файлов.
csc /r:System.Windows.Forms.dll testapp.cs helloimsg.cs
В качестве альтернативы компилятор C# позволяет использовать групповой символ (*) , информирующий csc.exe о том, что следует включить в текущий проект все файлы *.cs, содержащиеся в папке проекта:
css /r:System.Windows.Forms.dll *.cs
Результат выполнения новой программы не будет отличаться от предыдущего. Единственным отличием этих двух приложений будет только то, что теперь исходный код разделен на два файла.
Ссылки на множество внешних компоновочных блоков
В связи с рассматриваемой темой возникает следующий вопрос: "Что делать, если при использовании csc.exe нужно сослаться на множество внешних компоновочных блоков?" Просто перечислить все компоновочные блоки, используя в качестве разделителя точку с запятой. Для рассмотренного выше примера не требовалось указывать множество внешних компоновочных блоков, но вот соответствующий пример.
csc /r:System.Windows.Forms.dll;System.Drawing.dll*.cs
Работа с ответными файлами csc.exe
Интервал:
Закладка: