Герберт Шилдт - C# 4.0: полное руководство
- Название:C# 4.0: полное руководство
- Автор:
- Жанр:
- Издательство:ООО И.Д. Вильямс
- Год:2011
- Город:Москва -- Киев
- ISBN:978-5-8459-1684-6
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Герберт Шилдт - C# 4.0: полное руководство краткое содержание
В этом полном руководстве по C# 4.0 - языку программирования, разработанному специально для среды .NET, - детально рассмотрены все основные средства языка: типы данных, операторы, управляющие операторы, классы, интерфейсы, методы, делегаты, индексаторы, события, указатели, обобщения, коллекции, основные библиотеки классов, средства многопоточного программирования и директивы препроцессора. Подробно описаны новые возможности C#, в том числе PLINQ, библиотека TPL, динамический тип данных, а также именованные и необязательные аргументы. Это справочное пособие снабжено массой полезных советов авторитетного автора и сотнями примеров программ с комментариями, благодаря которым они становятся понятными любому читателю независимо от уровня его подготовки.
Книга рассчитана на широкий круг читателей, интересующихся программированием на C#.Введите сюда краткую аннотацию
C# 4.0: полное руководство - читать онлайн бесплатно ознакомительный отрывок
Интервал:
Закладка:
extern alias имя_сборки;
Если продолжить приведенный выше пример, то в программе должны появиться следующие строки кода.
extern alias Asml;
extern alias Asm2;
Теперь оба варианта класса MyClass
будут доступны в программе по соответствующему псевдониму.
Рассмотрим полноценный пример программы, в которой демонстрируется применение внешних псевдонимов. Эта программа состоит из трех файлов. Ниже приведен исходный текст, который следует поместить в первый файл — test1.cs
.
using System;
namespace MyNS {
public class MyClass {
public MyClass() {
Console.WriteLine("Конструирование из файла MyClassl.dll.");
}
}
}
Далее следует исходный текст из файла test2.cs.
using System;
namespace MyNS {
public class MyClass {
public MyClass() {
Console.WriteLine("Конструирование из файла MyClass2.dll.");
}
}
}
Обратите внимание на то, что в обоих файлах, test1.cs
и test2.cs
, объявляется пространство имен MyNS
и что именно в этом пространстве в обоих файлах определяется класс MyClass
. Следовательно, без псевдонима оба варианта класса MyClass
будут недоступными ни одной из программ.
И наконец, ниже приведен исходный текст из третьего файла test3.cs
, где используются оба варианта класса MyClass
из файлов test1.cs
и test2.cs
. Это становится возможным благодаря операторам с внешними псевдонимами.
// Операторы с внешними псевдонимами должны
// быть указаны в самом начале файла,
extern alias Asml;
extern alias Asm2;
using System;
class Demo {
static void Main() {
Asm1::MyNS.MyClass t = new Asm1::MyNS.MyClass() ;
Asm2::MyNS.MyClass t2 = new Asm2::MyNS.MyClass();
}
}
Сначала следует скомпилировать файлы test1.cs
и test2.cs
в их библиотечные эквиваленты DLL. Для этого достаточно ввести в командной строке следующее.
csc /t:library test1.cs
csc /t:library test2.cs
Затем необходимо скомпилировать файл test3.cs
, указав в командной строке
csc /r:Asm1=test1.dll /r:Asm2=test2.dll test3.cs
Обратите внимание на применение параметра /r
, уведомляющего компилятор о том, что ссылка на метаданные находится в соответствующем файле. В данном случае псевдоним Asm1
связывается с файлом test1.dll
, а псевдоним Asm2
— с файлом test2.dll
.
В самой программе псевдонимы указываются в приведенных ниже операторах с модификатором extern
, которые располагаются в самом начале файла.
extern alias Asm1; extern alias Asm2;
А в методе Main()
псевдонимы используются для разрешения неоднозначности ссылок на класс MyClass
. Обратите внимание на следующее применение псевдонима для обращения к классу MyClass
.
Asm1::MyNS.MyClass
В этой строке кода первым указывается псевдоним, затем оператор разрешения пространства имен, далее имя пространства имен, в котором находится класс с неоднозначным именем, и, наконец, имя самого класса, следующее после оператора-точки. Та же самая общая форма пригодна и для других внешних псевдонимов.
Ниже приведен результат выполнения данной программы.
Конструирование из файла MyClassl.dll.
Конструирование из файла MyClass2.dll.
ЧАСТЬ 2 Библиотека C#
В части II рассматривается библиотека С#. Как пояснялось в части I, используемая в C# библиотека на самом деле является библиотекой классов для среды .NET Framework. Поэтому материал этой части книги имеет отношение не только к языку С#, но и ко всей среде .NET Framework в целом.
Библиотека классов для среды .NET Framework организована по пространствам имен. Для использования отдельной части этой библиотеки, как правило, достаточно импортировать ее пространство имен, указав его с помощью директивы using
в исходном тексте программы. Конечно, ничто не мешает определить имя отдельного элемента библиотеки полностью вместе с его пространством имен, но ведь намного проще импортировать сразу все пространство имен.
Библиотека среды .NET Framework довольно обширна, и поэтому ее полное описание выходит за рамки этой книги. (На самом деле для этого потребовалась бы отдельная и довольно объемистая книга!) Поэтому в части II рассматриваются лишь самые основные элементы данной библиотеки, многие из которых находятся в пространстве имен System
. Кроме того, в этой части описываются классы коллекций, а также вопросы организации многопоточной обработки и сетей.
--------------------------------
ПРИМЕЧАНИЕ
Классы ввода-вывода подробно рассматривались в главе 14.
--------------------------------
ГЛАВА 21Пространство имен System
ГЛАВА 22Строки и форматирование
ГЛАВА 23Многопоточное программирование. Часть первая: основы
ГЛАВА 24Многопоточное программирование. Часть вторая: библиотека TPL
ГЛАВА 25Коллекции, перечислители и итераторы
ГЛАВА 26Сетевые средства подключения к Интернету
ГЛАВА 21 Пространство имен System
В этой главе речь пойдет о пространстве имен System
. Это пространство имен самого верхнего уровня в библиотеке классов для среды .NET Framework. В нем непосредственно находятся те классы, структуры, интерфейсы, делегаты и перечисления, которые чаще всего применяются в программах на C# или же считаются неотъемлемой частью среды .NET Framework. Таким образом, пространство имен System
составляет ядро рассматриваемой здесь библиотеки классов.
Кроме того, в пространство имен System
входит много вложенных пространств имен, поддерживающих отдельные подсистемы, например System.Net
. Некоторые из этих пространств имен рассматриваются далее в этой книге. А в этой главе речь пойдет только о членах самого пространства имен System
.
Члены пространства имен System
Помимо большого количества классов исключений, в пространстве имен содержатся приведенные ниже классы .
ActivationContext
Activator
AppDomain
AppDomainManager
AppDomainSetup
Applicationld
Applicationldentity
Array
AssemblyLoadEventArgs
Attribute
AttributeUsageAttribute
BitConverter
Buffer
CharEnumerator
CLSCompliantAttribute
Интервал:
Закладка: