Что выведет программа?
Anonymous Quiz
25%
Ошибка компиляции
66%
10 + 15 = 25
3%
Нет правильного ответа
6%
Посмотреть результаты
Обратите внимание на то, что метод
Причина, по которой компилятор будет считать данный код синтаксически корректным, связана с тем, что потеря данных здесь невозможна. Поскольку максимальное значение (32767), которое может содержать тип
Sum()
ожидает поступления двух параметров типа int
. На самом деле ему передаются две переменных типа short
. Хотя это может показаться несоответствием типов, программа скомпилируется, выполнится без ошибок и вернёт в результате значение 25.Причина, по которой компилятор будет считать данный код синтаксически корректным, связана с тем, что потеря данных здесь невозможна. Поскольку максимальное значение (32767), которое может содержать тип
short
, вполне вписывается в рамки диапазона типа int
(максимальное значение которого составляет 2147483647), компилятор будет неявным образом расширять каждую переменную типа short до типа int
. Формально термин «расширение» применяется для обозначения неявного восходящего приведения (upward cast), которое не приводит к потере данных.Вы знаете, что Blazor WebAssembly 3.2.0 включает встроенную поддержку клиентских веб-сокетов (если не знали, то вот описание). Раньше, если вы хотели использовать веб-сокеты, вы должны были либо написать свою собственную оболочку, либо использовать большую библиотеку, такую как SignalR, которая сделала обертку за вас. Однако вы не сможете использовать обычный класс System.Net.WebSockets.ClientWebSocket, встроенный в .NET.
Реализация ClientWebSocket в конечном итоге просто оборачивает JS-взаимодействие для вас, что значительно упрощает ваш код и удаляет сторонние библиотеки из вашего проекта.
По ссылке вы увидите пример класса, который использует ClientWebSocket в клиенте чата Blazor, где все аккуратно упаковано в новую функцию IAsyncEnumerable C # 8: https://proglib.io/w/9c0889e8
Реализация ClientWebSocket в конечном итоге просто оборачивает JS-взаимодействие для вас, что значительно упрощает ваш код и удаляет сторонние библиотеки из вашего проекта.
По ссылке вы увидите пример класса, который использует ClientWebSocket в клиенте чата Blazor, где все аккуратно упаковано в новую функцию IAsyncEnumerable C # 8: https://proglib.io/w/9c0889e8
ASP.NET Blog
Blazor WebAssembly 3.2.0 Preview 1 release now available | ASP.NET Blog
Today we released a new preview update for Blazor WebAssembly with a bunch of great new features and improvements. Here’s what’s new in this release: Version updated to 3.2 Simplified startup Download size improvements Support for .NET SignalR client Get…
IoT, AI, and Blockchain for .NET.epub
12.9 MB
IoT, AI, and Blockchain for .NET
Building a Next-Generation Application from the Ground Up (2018)
Автор(ы): Nishith Pathak, Anurag Bhandari
С помощью книги вы узнаете, как возможности искусственного интеллекта (AI) и машинного обучения (ML) могут быть расширены с помощью Интернета вещей (IoT) и защищены с помощью Blockchain.
В книге рассматриваются современные и простые в использовании API-интерфейсы и сервисы от Microsoft, в том числе Azure IoT, API-интерфейсы Cognitive Services, Blockchain как услуга (BaaS) и Machine Learning Studio.
Работая с книгой, вы получите практический опыт создания решения для умного медицинского учреждения, использующего все эти технологии. Размещенное в Azure и подключенное к сети с помощью IoT Azure, решение включает в себя централизованный мониторинг пациентов, где блокчейн используется для создания системы безопасности и управления запасами на основе доверия, а машинное обучение применяется для создания прогнозных решений для проактивного улучшения качества жизни.
Building a Next-Generation Application from the Ground Up (2018)
Автор(ы): Nishith Pathak, Anurag Bhandari
С помощью книги вы узнаете, как возможности искусственного интеллекта (AI) и машинного обучения (ML) могут быть расширены с помощью Интернета вещей (IoT) и защищены с помощью Blockchain.
В книге рассматриваются современные и простые в использовании API-интерфейсы и сервисы от Microsoft, в том числе Azure IoT, API-интерфейсы Cognitive Services, Blockchain как услуга (BaaS) и Machine Learning Studio.
Работая с книгой, вы получите практический опыт создания решения для умного медицинского учреждения, использующего все эти технологии. Размещенное в Azure и подключенное к сети с помощью IoT Azure, решение включает в себя централизованный мониторинг пациентов, где блокчейн используется для создания системы безопасности и управления запасами на основе доверия, а машинное обучение применяется для создания прогнозных решений для проактивного улучшения качества жизни.
Текстовая расшифровка и видеозапись доклада Егора Гришечко с конференции DotNext 2019 Moscow, который будет интересен и полезен разработчикам микросервисных систем, а также бэкенд-разработчикам, интересующимся метриками и мониторингом.
https://proglib.io/w/182895ab
https://proglib.io/w/182895ab
Хабр
Распределенная трассировка запросов в .NET
В любой системе возникает задача понять, как взаимодействуют компоненты между собой. Особенно важно это в распределённых системах. Как понять, какие компоненты обработали запрос, сколько времени...
#вопросы_для_самопроверки
Для чего нужен оператор checked в C#?
Для чего нужен оператор checked в C#?
Оператор или ключевое слово checked используется для явного включения проверки переполнения при выполнении арифметических операций и преобразований с данными целого типа.
Если требуется указать, что выражение будет проверяться на переполнение, следует использовать ключевое слово checked, а если требуется проигнорировать переполнение — ключевое слово unchecked. В последнем случае результат усекается, чтобы не выйти за пределы диапазона представления чисел для целевого типа выражения.
У ключевого слова checked имеются две общие формы: в первой проверяется конкретное выражение (операторная), а во второй проверяется блок операторов (блочная). Пример использования ключевого слова checked:
где выражение обозначает проверяемое выражение. Если вычисление проверяемого выражения приводит к переполнению, то генерируется исключение OverflowException.
Ключевое слово unchecked также имеет две общие формы: в первой переполнение игнорируется при вычислении конкретного выражения (операторная), а во второй оно игнорируется при выполнении блока операторов (блочная). Пример:
где выражение обозначает конкретное выражение, при вычислении которого переполнение игнорируется. Если в непроверяемом выражении происходит переполнение, то результат его вычисления усекается.
Если требуется указать, что выражение будет проверяться на переполнение, следует использовать ключевое слово checked, а если требуется проигнорировать переполнение — ключевое слово unchecked. В последнем случае результат усекается, чтобы не выйти за пределы диапазона представления чисел для целевого типа выражения.
У ключевого слова checked имеются две общие формы: в первой проверяется конкретное выражение (операторная), а во второй проверяется блок операторов (блочная). Пример использования ключевого слова checked:
checked (выражение)
checked {
// проверяемые операторы
}
где выражение обозначает проверяемое выражение. Если вычисление проверяемого выражения приводит к переполнению, то генерируется исключение OverflowException.
Ключевое слово unchecked также имеет две общие формы: в первой переполнение игнорируется при вычислении конкретного выражения (операторная), а во второй оно игнорируется при выполнении блока операторов (блочная). Пример:
unchecked (выражение)
unchecked {
// операторы, для которых переполнение игнорируется
}
где выражение обозначает конкретное выражение, при вычислении которого переполнение игнорируется. Если в непроверяемом выражении происходит переполнение, то результат его вычисления усекается.
Автор статьи решил поэкспериментировать и написал среду выполнения .NET как приложение .NET, из чего получилась платформа Mobius Runtime — среда выполнения .NET, работающая на .NET Core.
https://proglib.io/w/f3ad9d57
https://proglib.io/w/f3ad9d57
Фильм Microsoft Build 2020: главные новинки IT-индустрии
Рассказ и видео о последних новинках от компании Microsoft. Суперкомпьютеры, безопасное машинное обучение, Learn TV, Fluid Framework и многое другое – будьте в курсе инноваций!
https://proglib.io/sh/RSsI59cBpz
Рассказ и видео о последних новинках от компании Microsoft. Суперкомпьютеры, безопасное машинное обучение, Learn TV, Fluid Framework и многое другое – будьте в курсе инноваций!
https://proglib.io/sh/RSsI59cBpz
В репозитории представлен шаблон чистой архитектуры для приложения, написанного с помощью Angular 9 и .NET Core 3.1. Его также отмечал в своём докладе («Clean Architecture with ASP.NET Core 3.0») Jason Taylor на GOTO Copenhagen 2019, в котором вы можете найти для себя что-то интересное: слайды и видео.
GitHub
GitHub - jasontaylordev/CleanArchitecture: Clean Architecture Solution Template for ASP.NET Core
Clean Architecture Solution Template for ASP.NET Core - jasontaylordev/CleanArchitecture
Члены класса, определенные с этими модификаторами, могут быть доступны только в текущем классе или в классах-наследниках. Но если модификатор protected гарантирует доступ для любого класса-наследника вне зависимости от того, в каком прокте (сборке) он расположен, то модификатор private protected (доступен с версии C# 7.2) делает члены класса доступными только для классов-наследников, которые размещены в том же проекте (сборке), где определен исходный класс.
Автор статьи с 2001 года использует .NET в своих проектах. Несмотря на то, что за это время он разносторонне развивался в разработке на JavaScript и TypeScript, он постоянно продолжает возвращаться к .NET, и вот почему: https://proglib.io/w/a44df704
DEV Community
A Love Letter to .NET
With Microsoft's official release of .NET Core 3 today, I want to give you my perspective on .NET and...
Разбираем пример создания и оптимизация маппера объектов в C#: https://proglib.io/w/3e614df6
Twilio Blog
Building a Blazing Fast Object Mapper with C# .NET Core 3.1
Computer programming tutorial demonstrating multiple ways of building an object-to-object mapper in C# with .NET Core 3.1, including performance metrics and analysis. Also shows how to implement the AutoMapper library.
🙇Любите пораскинуть мозгами? 20 и 21 июня образовательный портал GeekBrains проведет онлайн-конкурс по математике и информатике. Решите задачи, войдите в десятку лучших и выиграйте бесплатное обучение IT-профессиям на выбор: веб-программированию, системному администрированию, разработке игр и др.
👨🏫 Участвуют все желающие, достаточно школьных знаний. А задания с выбором ответа и без.
🙋♂️ Выглядит жизненно: как будто сдаёшь ЕГЭ, чтобы поступить в онлайн-университет. Все подробности здесь: https://proglib.io/w/f733213b
👨🏫 Участвуют все желающие, достаточно школьных знаний. А задания с выбором ответа и без.
🙋♂️ Выглядит жизненно: как будто сдаёшь ЕГЭ, чтобы поступить в онлайн-университет. Все подробности здесь: https://proglib.io/w/f733213b
Что выведет программа?
Anonymous Quiz
56%
Bob
22%
Tom
14%
Ошибка компиляции
2%
Нет правильного ответа
7%
Посмотреть результаты
Программа выведет строку
Поскольку все три переменных (tom, bob и empl) хранят ссылку на один и тот же объект в памяти, то изменение объекта через одну из этих переменных приведет к тому, что другие переменные будут указывать на этот изменённый объект.
Bob
. Переменная Tom хранит ссылку на объект Employee. Переменная Bob после присвоения также хранит эту же ссылку на объект Employee. Поэтому преобразование bob as Employee вернёт объект Employee, который будет присвоен переменной empl. Поскольку все три переменных (tom, bob и empl) хранят ссылку на один и тот же объект в памяти, то изменение объекта через одну из этих переменных приведет к тому, что другие переменные будут указывать на этот изменённый объект.
👍1