Добавить в цитаты Настройки чтения

Страница 486 из 502

<b>SortedListcint, string&gt; lst =</b>

<b>  new SortedList&lt;int, string&gt;()</b>

<b>       { {1, &quot;один&quot;}, {2, &quot;два&quot; }, {3, &quot;три&quot;} };</b>

Компилятор передаст каждую группу значений в качестве аргументов методу Add(). Следовательно, первая пара инициализаторов преобразуется компилятором в вызов Add(1, &quot;один&quot;).

Компилятор вызывает метод Add() автоматически для ввода инициализаторов в коллекцию, и поэтому инициализаторы коллекций можно использовать только в коллекциях, поддерживающих открытую реализацию метода Add(). Это означает, что инициализаторы коллекций нельзя использовать в коллекциях типа Stack, Stack&lt;T&gt;, Queue или Queue&lt;T&gt;, поскольку в них метод Add() не поддерживается. Их нельзя применять также в тех коллекциях типа LinkedList&lt;T&gt;, где метод Add() предоставляется как результат явной реализации соответствующего интерфейса.

ГЛАВА 26 Сетевые средства подключения к Интернету

Язык C# предназначен для программирования в современной вычислительной среде, где Интернету, естественно, принадлежит весьма важная роль. Одной из главных целей разработки C# было внедрение в этот язык программирования средств, необходимых для доступа к Интернету. Такой доступ можно было осуществить и в предыдущих версиях языков программирования, включая С и C++, но поддержка операций на стороне сервера, загрузка файлов и получение сетевых ресурсов в этих языках не вполне отвечали потребностям большинства программистов. Эта ситуация коренным образом изменилась в С#. Используя стандартные средства C# и среды .NET Framework, можно довольно легко сделать приложения совместимыми с Интернетом и написать другие виды программ, ориентированных на подключение к Интернету.

Поддержка сетевого подключения осуществляется через несколько пространств имен, определенных в среде .NET Framework, и главным среди них является пространство имен System.Net. В нем определяется целый ряд высокоуровневых, но простых в использовании классов, поддерживающих различные виды операций, характерных для работы с Интернетом. Для этих целей доступен также ряд пространств, вложенных в пространство имен System.Net. Например, средства низкоуровневого сетевого управления через сокеты находятся в пространстве имен System.Net.Sockets, поддержка электронной почты — в пространстве имен System.Net.Mail, а поддержка защищенных сетевых потоков — в пространстве имен System.Net.Security. Дополнительные функциональные возможности предоставляются в ряде других вложенных пространств имен. К числу других не менее важных пространств имен, связанных с сетевым подключением к Интернету, относится пространство System.Web. Это и вложенные в него пространства имен поддерживают сетевые приложения на основе технологии ASP.NET.

В среде .NET Framework имеется достаточно гибких средств и возможностей для сетевого подключения к Интернету. Тем не менее для разработки многих приложений более предпочтительными оказываются функциональные возможности, доступные в пространстве имен System.Net. Они и удобны, и просты в использовании. Именно поэтому пространству имен System.Net будет уделено основное внимание в этой главе.

Члены пространства имен System.Net

Пространство имен System.Net довольно обширно и состоит из многих членов. Полное их описание и обсуждение всех аспектов программирования для Интернета выходит далеко за рамки этой главы. (На самом деле для подробного рассмотрения всех вопросов, связанных с сетевым подключением к Интернету и его поддержкой в С#, потребуется отдельная книга.) Однако целесообразно хотя бы перечислить члены пространства имен System. Net, чтобы дать какое-то представление о том, что именно доступно для использования в этом пространстве.

Ниже перечислены классы, определенные в пространстве имен System.Net.

<b>AuthenticationManager</b>

<b>Authorization</b>

<b>Cookie</b>

<b>CookieCollection</b>

<b>CookieContainer</b>

<b>CookieException</b>

<b>CredentialCache</b>

<b>Dns</b>

<b>DnsEndPoint</b>

<b>DnsPermission</b>

<b>DnsPermissionAttribute</b>

<b>DownloadDataCompletedEventArgs</b>

<b>DownloadProgressChangedEventArgs</b>

<b>DownloadstringCompletedEventArgs</b>

<b>EndPoint</b>

<b>EndpointPermission</b>

<b>FileWebRequest</b>

<b>FileWebResponse</b>

<b>FtpWebRequest</b>

<b>FtpWebResponse</b>

<b>HttpListener</b>

<b>HttpListenerBasicIdentity</b>

<b>HttpListenerContext</b>

<b>HttpListenerException</b>

<b>HttpListenerPrefixCol lection</b>

<b>HttpListenerRequest</b>

<b>HttpListenerResponse</b>

<b>HttpVersion</b>

<b>HttpWebRequest</b>

<b>HttpWebResponse</b>

<b>IPAddress</b>

<b>IPEndPoint</b>

<b>IPEndPointCollection</b>

<b>IPHostEntry</b>

<b>IrDAEndPoint</b>