Рейтинговые книги
Читем онлайн Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю

Шрифт:

-
+

Интервал:

-
+

Закладка:

Сделать
1 ... 35 36 37 38 39 40 41 42 43 ... 642

Инфраструктура .NET Core предлагает еще одну исполняющую среду. Основное отличие исполняющей среды .NET Core от упомянутых выше сред заключается в том, что исполняющая среда .NET Core обеспечивает единый четко определенный уровень выполнения, который разделяется всеми языками и платформами, ориентированными на .NET Core.

Различия между сборкой пространством имен и типом

Любой из нас понимает важность библиотек кода. Главное назначение библиотек платформы — предоставлять разработчикам четко определенный набор готового кода, который можно задействовать в создаваемых приложениях. Однако C# не поставляется с какой-то специфичной для языка библиотекой кода. Взамен разработчики на С# используют нейтральные к языкам библиотеки .NET Core. Для поддержания всех типов внутри библиотек базовых классов в организованном виде внутри .NET Core широко применяется концепция пространств имен.

Пространство имен — это группа семантически родственных типов, которые содержатся в одной или нескольких связанных друг с другом сборках. Например, пространство имен System.IO содержит типы, относящиеся к файловому вводу-выводу, пространство имен System.Data — типы для работы с базами данных и т.д. Важно понимать, что одна сборка может содержать любое количество пространств имен, каждое из которых может иметь любое число типов.

Основное отличие между таким подходом и специфичной для языка библиотекой заключается в том, что любой язык, ориентированный на исполняющую среду .NET Core, использует те же самые пространства имен и те же самые типы. Например, следующие две программы представляют собой вездесущее приложение "Hello World", написанное на языках C# и VB:

<b>// Приложение &quot;Hello World&quot; на языке С #.</b>

using System;

public class MyApp

{

  static void Main()

  {

    Console.WriteLine(&quot;Hi from C#&quot;);

  }

}

<b>' Приложение &quot;Hello World&quot; на языке VB.</b>

Imports System

Public Module MyApp

  Sub Main()

    Console.WriteLine(&quot;Hi from VB&quot;)

  End Sub

End Module

Обратите внимание, что во всех языках применяется класс Console, определенный в пространстве имен System. Помимо очевидных синтаксических различий представленные приложения выглядят довольно похожими как физически, так и логически.

Понятно, что после освоения выбранного языка программирования для .NET Core вашей следующей целью как разработчика будет освоение изобилия типов, определенных в многочисленных пространствах имен .NET Core. Наиболее фундаментальное пространство имен, с которого нужно начать, называется System. Оно предлагает основной набор типов, которые вам как разработчику в .NET Core придется задействовать неоднократно. Фактически без добавления, по крайней мере, ссылки на пространство имен System построить сколько-нибудь функциональное приложение C# невозможно, т.к. в System определены основные типы данных (например, System.Int32 и System.String). В табл. 1.3 приведены краткие описания некоторых (конечно же, не всех) пространств имен .NET Core,  сгруппированные по функциональности.

(window.adrunTag = window.adrunTag || []).push({v: 1, el: 'adrun-4-390', c: 4, b: 390})

Доступ к пространству имен программным образом

Полезно снова повторить, что пространство имен — всего лишь удобный способ логической организации связанных типов, содействующий их пониманию. Давайте еще раз обратимся к пространству имен System. С точки зрения разработчика можно предположить, что конструкция System.Console представляет класс по имени Console, который содержится внутри пространства имен под названием System. Однако с точки зрения исполняющей среды .NET Core это не так. Исполняющая среда видит только одиночный класс по имени System.Console.

В языке C# ключевое слово using упрощает процесс ссылки на типы, определенные в отдельном пространстве имен. Давайте посмотрим, каким образом оно работает. В приведенном ранее примере Calc в начале файла находится единственный оператор using:

using System;

Он делает возможной следующую строку кода:

Console.WriteLine (&quot;10 + 84 is {0}.&quot; , ans);

Без оператора using пришлось бы записывать так:

System.Console.WriteLine (&quot;10 + 84 is {0}.&quot;, ans);

Хотя определение типа с использованием полностью заданного имени позволяет делать код более читабельным, трудно не согласиться с тем, что применение ключевого слова using в C# значительно сокращает объем набора на клавиатуре. В настоящей книге полностью заданные имена в основном использоваться не будут (разве что для устранения установленной неоднозначности), а предпочтение отдается упрощенному подходу с применением ключевого слова using.

Однако не забывайте о том, что ключевое слово using — просто сокращенный способ указать полностью заданное имя типа. Любой из подходов дает в результате тот же самый код CIL (учитывая, что в коде CIL всегда используются полностью заданные имена) и не влияет ни на производительность, ни на размер сборки.

Ссылка на внешние сборки

В предшествующих версиях .NET Framework для установки библиотек инфраструктуры применялось общее местоположение, известное как глобальный кеш сборок (Global Assembly Cache — GAC). Инфраструктура .NET Core не использует GAC. Взамен каждая версия (включая младшие выпуски) устанавливается в собственное местоположение на компьютере (согласно версии). В среде Windows каждая версия исполняющей среды и SDK устанавливаются в с:Program Filesdotnet.

В большинстве проектов .NET Core сборки добавляются путем добавления пакетов NuGet (раскрываются позже в книге). Тем не менее, приложения .NET Core, нацеленные и разрабатываемые в среде Windows, по-прежнему располагают доступом к библиотекам СОМ, что тоже рассматривается позже в книге.

1 ... 35 36 37 38 39 40 41 42 43 ... 642
На этой странице вы можете бесплатно читать книгу Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю бесплатно.
Похожие на Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю книги

Оставить комментарий