Эндрю Троелсен - ЯЗЫК ПРОГРАММИРОВАНИЯ С# 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-е издание - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
class Square{}
}
Если обновить ShapeTester, как показано ниже, вы получите целый ряд сообщений об ошибках компиляции, поскольку два пространства имен определяют типы с одинаковыми названиями.
// Множество неоднозначностей!
using System;
using MyShapes;
using My3DShapes;
namespace MyApp {
class ShapeTester {
static void Main(string[] args) {
// На какое пространство имен ссылаются?
Hexagon b = new Hexagon(); // Ошибка компиляции!
Circle с = new Circle(); // Ошибка компиляции!
Square s = new Square(); / / Ошибка компиляции!
}
}
}
Неоднозначность разрешится, если использовать абсолютное имя типа
// Теперь неоднозначность ликвидирована.
static void Main(string[] args) {
Му3DShapes.Hexagon h = new My3DShapes.Hexagon();
My3DShapes.Circle с = new My3DShrapes.Circle();
MyShapes.Square s = new MyShapes.Square();
}
Использование псевдонимов
Ключевое слово C# using можно также использовать для создания псевдонимов абсолютных имен типов. После создания псевдонима вы получаете возможность использовать его как ярлык, который будет заменен полным именем типа во время компиляции. Например:
using System;
using MyShapes;
using My3DShapes;
// Ликвидация неоднозначности с помощью псевдонима.
using The3DHexagon = My3DShapes.Hexagon;
namespace MyApp {
class ShapeTester {
static void Main(string[] args) {
// На самом деле здесь создается тип My3DShapes.Hexagon.
The3DHexagon h2 = new The3DHexagon();
…
}
}
}
Этот альтернативный синтаксис using можно использовать и при создании псевдонимов для длинных названий пространств имен.
Одним из длинных названий в библиотеке базовых классов является System.Runtime.Serialization.Formatters.Binary. Это пространство имен содержит член с именем BinaryFormatter. Используя синтаксис using, экземпляр BinaryFormatter можно создать так, как показано ниже:
using MyAlias= System.Runtime.Serialization.Formatters.Binary;
namespace MyApp {
class ShapeTester {
static void Main(string[] args) {
MyAlias.BinaryFormatter b = new MyAlias.BinaryFormatter();
}
}
}
или же с помощью традиционного варианта использования директивы using.
using System.Runtime.Serialization.Formatters.Binary;
namespace MyApp {
class ShapeTester {
static void Main(string [] args) {
BinaryFormatter b = new BinaryFormatter();
}
}
}
Замечание.Теперь в C# предлагается и механизм разрешения конфликтов для одинаково названных пространств имен, основанный на использовании спецификатора псевдонима пространства имен (::) и "глобальной" метки. К счастью, указанный тип коллизий возникает исключительно редко. Если вам требуется дополнительная информация по этой теме, прочитайте мою статью "Working with the C# 2.0 Command Line Compiler" (Работа с компилятором командной строки C# 2.0), которую можно найти на страницах http://msdn.microsoft.com.
Вложенные пространства имен
Совершенствуя организацию своих типов, вы имеете возможность определить пространства имен в рамках других пространств имен. Библиотеки базовых классов .NET часто используют такие вложений, чтобы обеспечить более высокий уровень организации типа. Например, пространство имен Collections вложено в System, чтобы в результате получилась System.Collections. Чтобы создать корневое пространство имен, содержащее уже существующее пространство имен My3DShapes, можно изменить наш программный код так, как показано ниже.
// Вложение пространства имен.
namespace Chapter3 {
namespace My3DShapes {
// Трехмерный класс Circle.
class Circle{}
// Трехмерный класс Hexagon.
class Hexagon{}
// Трехмерный класс Square.
class Square{}
}
}
Во многих случаях единственной задачей корневого пространства имен является расширение области видимости, поэтому непосредственно в рамках такого пространства имен может вообще не определяться никаких типов (как в случае пространства имей Chapter3). В таких случаях вложенное пространство имен можно определить, используя следующую компактную форму.
// Вложение пространства имен (вариант 2).
namespace Chapters.My3DShapes{
// Трехмерный класс Circle.
class Circle{}
// Трехмерный класс Hexagon.
class Hexagon{}
// Трехмерный класс Square.
class Square{}
}
С учетом того, что теперь пространство имен My3DShapes вложено в рамки корневого пространства имен Chapter3, вы должны изменить вид всех соответствующих операторов, использующих директиву using и псевдонимы типов.
using Chapter3.My3DShapes;
using The3DHexagon = Chapter3.My3DShapes.Hexagon;
Пространство имен по умолчанию в Visual Studio 2005
В заключение нашего обсуждения пространств имен следует отметить, что при создании нового C#-проекта в Visual Studio 2005 имя пространства имен вашего приложения по умолчанию будет совпадать с именем проекта. При вставке новых элементов с помощью меню Project→Add New Item создаваемые типы будут автоматически помещаться в пространство имен, используемое по умолчанию. Если вы хотите изменить имя пространства имен, используемого по умолчанию (например, так, чтобы оно соответствовало названию вашей компании), используйте опцию Default namespace (Пространство имен по умолчанию) на вкладке Application (Приложения) окна свойств проекта (рис. 3.24).

Рис. 3.24. Изменение пространства имен, используемого по умолчанию
После такой модификации любой новый элемент, вставляемый в проект, будет помещаться в пространство имен IntertechTraining (и, очевидно, чтобы использовать соответствующие типы в рамках другого пространства имен, потребуется указать подходящую по форме директиву using).
Исходный код.Проект Namespaces размещен в подкаталоге, соответствующем главе 3.
Резюме
В этой (довольно длинной) главе обсуждались самые разные аспекты языка программирования C# и платформы .NET. В центре внимания были конструкция, которые наиболее часто используются в приложениях и которые могут понадобиться вам при создании таких приложений.
Вы могли убедиться, что все внутренние типы данных в C# соответствуют определенным типам из пространства имён System. Каждый такой "системный" тип предлагает набор членов, с помощью которых программными средствами можно выяснить диапазон изменения типа. Были также рассмотрены особенности построения типов класса в C#, различные правила передачи параметров, изучены типы, характеризуемые значениями, и ссылочные типы, а также выяснена роль могущественного System.Object.
Читать дальшеИнтервал:
Закладка: