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

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

Книгу Язык программирования C#9 и платформа .NET5 - Эндрю Троелсен читаем онлайн бесплатно полную версию! Чтобы начать читать не надо регистрации. Напомним, что читать онлайн вы можете не только на компьютере, но и на андроид (Android), iPhone и iPad. Приятного чтения!

177 0 18:04, 26-08-2023
Язык программирования C#9 и платформа .NET5 - Эндрю Троелсен
26 август 2023

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

В 10-м издании книги описаны новейшие возможности языка C# 9 и .NET 5 вместе с подробным "закулисным" обсуждением, призванным расширить навыки критического мышления разработчиков, когда речь идет об их ремесле. Книга охватывает ASP.NET Core, Entity Framework Core и многое другое наряду с последними обновлениями унифицированной платформы .NET, начиная с улучшений показателей производительности настольных приложений Windows в .NET 5 и обновления инструментария XAML и заканчивая расширенным рассмотрением файлов данных и способов обработки данных. Все примеры кода были переписаны с учетом возможностей последнего выпуска C# 9.

    1 ... 38 39 40 41 42 43 44 45 46 ... 407
    Перейти на страницу:
    типа данных для каждой переменной является рекомендуемой практикой, язык C# поддерживает возможность неявной типизации локальных переменных с использованием ключевого слова var. Ключевое слово var может применяться вместо указания конкретного типа данных (такого как int, bool или string). Когда вы поступаете подобным образом, компилятор будет автоматически выводить лежащий в основе тип данных на основе начального значения, используемого для инициализации локального элемента данных.

    Чтобы прояснить роль неявной типизации, создайте новый проект консольного приложения по имени ImplicitlyTypedLocalVars и добавьте его в свое решение. Обновите код в Program.cs, как показано ниже:

    using System;

    using System.Linq;

    Console.WriteLine("***** Fun with Implicit Typing *****");

    Добавьте следующую функцию, которая демонстрирует неявные объявления:

    static void DeclareImplicitVars ()

    {

      // Неявно типизированные локальные переменные

      // объявляются следующим образом:

      // var имяПеременной = начальноеЗначение;

      var myInt = 0;

      var myBool = true;

      var myString = "Time, marches on...";

    }

    На заметку! Строго говоря, var не является ключевым словом языка С#. Вполне допустимо объявлять переменные, параметры и поля по имени var, не получая ошибок на этапе компиляции. Однако когда лексема var применяется в качестве типа данных, то в таком контексте она трактуется компилятором как ключевое слово.

    В таком случае, основываясь на первоначально присвоенных значениях, компилятор способен вывести для переменной myInt тип System.Int32, для переменной myBool — тип System.Boolean, а для переменной myString — тип System.String. В сказанном легко убедиться за счет вывода на консоль имен типов с помощью рефлексии. Как будет показано в главе 17, рефлексия представляет собой действие по определению состава типа во время выполнения. Например, с помощью рефлексии можно определить тип данных неявно типизированной локальной переменной. Модифицируйте метод DeclareImplicitVars():

    static void DeclareImplicitVars()

    {

      // Неявно типизированные локальные переменные,

      var myInt = 0;

      var myBool = true;

      var myString = "Time, marches on...";

      // Вывести имена лежащих в основе типов.

      Console.WriteLine("myInt is a: {0}", myInt.GetType().Name);

                        // Вывод типа myInt

      Console.WriteLine("myBool is a: {0}", myBool.GetType().Name);

                        // Вывод типа myBool

      Console.WriteLine("myString is a: {0}", myString.GetType().Name);

                        // Вывод типа myString

    }

    На заметку! Имейте в виду, что такую неявную типизацию можно использовать для любых типов, включая массивы, обобщенные типы (см. главу 10) и собственные специальные типы. В дальнейшем вы увидите и другие примеры неявной типизации. Вызов метода DeclareImplicitVars() в операторах верхнего уровня дает следующий вывод:

    ***** Fun with Implicit Typing *****

    myInt is a: Int32

    myBool is a: Boolean

    myString is a: String

    Неявное объявление чисел

    Неявное объявление Как утверждалось ранее, целые числа по умолчанию получают тип int, а числа с плавающей точкой — тип double. Создайте новый метод по имени DeclareImplicitNumerics и поместите в него показанный ниже код, в котором демонстрируется неявное объявление чисел:

    static void DeclareImplicitNumerics ( )

    {

      // Неявно типизированные числовые переменные.

      var myUInt = 0u;

      var myInt = 0;

      var myLong = 0L;

      var myDouble = 0.5;

      var myFloat = 0.5F;

      var myDecimal = 0.5M;

      // Вывод лежащего в основе типа.

      Console.WriteLine("myUInt is a: {0}", myUInt.GetType().Name);

      Console.WriteLine("myInt is a: {0}", myInt.GetType().Name);

      Console.WriteLine("myLong is a: {0}", myLong.GetType().Name);

      Console.WriteLine("myDouble is a: {0}", myDouble.GetType().Name);

      Console.WriteLine("myFloat is a: {0}", myFloat.GetType().Name);

      Console.WriteLine("myDecimal is a: {0}", myDecimal.GetType().Name);

    }

    Ограничения неявно типизированных переменных

    С использованием ключевого слова var связаны разнообразные ограничения. Прежде всего, неявная типизация применима только к локальным переменным внутри области видимости метода или свойства. Использовать ключевое слово var для определения возвращаемых значений, параметров или данных полей в специальном типе не допускается. Например, показанное ниже определение класса приведет к выдаче различных сообщений об ошибках на этапе компиляции:

    class ThisWillNeverCompile

    {

      // Ошибка! Ключевое слово var не может применяться к полям!

      private var myInt = 10;

      // Ошибка! Ключевое слово var не может применяться

      // к возвращаемому значению или типу параметра!

      public var MyMethod(var x, var y){}

    }

    Кроме того, локальным переменным, которые объявлены с ключевым словом var, обязано присваиваться начальное значение в самом объявлении, причем присваивать null в качестве начального значения невозможно. Последнее ограничение должно быть рациональным, потому что на основании только null компилятору не удастся вывести тип, на который бы указывала переменная.

    // Ошибка! Должно быть присвоено значение!

    var myData;

    // Ошибка! Значение должно присваиваться в самом объявлении!

    var myInt;

    myInt = 0;

    // Ошибка! Нельзя присваивать null в качестве начального значения!

    var myObj = null;

    Тем не менее, присваивать null локальной переменной, тип которой выведен в результате начального присваивания, разрешено (при условии, что это ссылочный тип):

    // Допустимо, если SportsCar имеет ссылочный тип!

    var myCar = new SportsCar();

    myCar = null;

    Вдобавок значение неявно типизированной локальной переменной допускается присваивать другим переменным, которые типизированы как неявно, так и явно:

    // Также нормально!

    var myInt = 0;

    var anotherlnt = myInt;

    string myString = "Wake up!";

    var myData = myString;

    Кроме того, неявно типизированную локальную переменную разрешено возвращать вызывающему коду при условии, что возвращаемый тип метода и выведенный тип переменной, определенной посредством var, совпадают:

    static int GetAnlntO

    {

      var retVal = 9;

      return retVal;

    }

    Неявно типизированные данные строго типизированы

    Имейте в виду, что неявная типизация локальных переменных дает в результате строго типизированные данные. Таким образом, применение ключевого слова var в языке C# — не тот же самый прием, который используется в сценарных языках (вроде JavaScript или Perl). Кроме того,

    1 ... 38 39 40 41 42 43 44 45 46 ... 407
    Перейти на страницу:
    1. Жалоба
    Отзывы - 0

    Прочитали книгу? Предлагаем вам поделится своим отзывом от прочитанного(прослушанного)! Ваш отзыв будет полезен читателям, которые еще только собираются познакомиться с произведением.


    Уважаемые читатели, слушатели и просто посетители нашей библиотеки! Просим Вас придерживаться определенных правил при комментировании литературных произведений.

    • 1. Просьба отказаться от дискриминационных высказываний. Мы защищаем право наших читателей свободно выражать свою точку зрения. Вместе с тем мы не терпим агрессии. На сайте запрещено оставлять комментарий, который содержит унизительные высказывания или призывы к насилию по отношению к отдельным лицам или группам людей на основании их расы, этнического происхождения, вероисповедания, недееспособности, пола, возраста, статуса ветерана, касты или сексуальной ориентации.
    • 2. Просьба отказаться от оскорблений, угроз и запугиваний.
    • 3. Просьба отказаться от нецензурной лексики.
    • 4. Просьба вести себя максимально корректно как по отношению к авторам, так и по отношению к другим читателям и их комментариям.

    Надеемся на Ваше понимание и благоразумие. С уважением, администратор LoveRead.info.


    Установить VPN и читай слушай бесплатно

    Новые отзывы

    1. Лариса Лариса04 июнь 12:43 Да, просто до слез похоже на сериал ,,Даррел,,... Смерть в райском уголке - Эмили Салливан
    2. Stmara Stmara02 июнь 22:44 Приятная история, чтобы скоротать вечер. Любимая книга из последних "Любовь со смертью", также очень понравилась -"Суженная... Сердце космического дракона - Ольга Вадимовна Гусейнова
    3. Alex Alex01 июнь 17:12 💩💩💩🖕🖕🖕🖕🖕🖕🖕... Игровой момент II - Александр Андреевич Бодров
    Все комметарии
    Новинки бесплатной онлайн библиотеки