Члены класса, определенные с этими модификаторами, могут быть доступны только в текущем классе или в классах-наследниках. Но если модификатор 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
Вероятно каждый веб-разработчик сталкивался с пагинацией (порядковая нумерация страниц) в своей практике, ведь она является одной из самых важных концепций при создании RESTful API. В руководстве подробно и довольно понятно расписан процесс создания ASP.NET Core 3.1 WebApi, который реализует расширенную пагинацию. Читайте статью или сразу в репозиторий.
Code With Mukesh
How to Implement Pagination in ASP.NET Core WebAPI? - Ultimate Guide
In this guide, we will learn how to implement Advanced Pagination in ASP.NET Core WebApi with ease. Pagination is one of the most important concepts while
Статья о поиске сильных и слабых сторон .NET Core и Node.js, которая породила много споров и побудила автора написать новую полноценную статью-продолжение с точки зрения личного опыта и причинно следственных связей.
Хабр
.NET Core vs Node.js
Цель данной статьи — не выбор лучшей из двух платформ, а поиск сильных и слабых сторон каждой из них. Обе технологии прочно зарекомендовали себя в мире веб-разработки. Каждая из них имеет своих...
Библиотека шарписта | C#, F#, .NET, ASP.NET pinned «Фильм Microsoft Build 2020: главные новинки IT-индустрии Рассказ и видео о последних новинках от компании Microsoft. Суперкомпьютеры, безопасное машинное обучение, Learn TV, Fluid Framework и многое другое – будьте в курсе инноваций! https://proglib.io/sh/RSsI59cBpz»
Свойства в C# управляют доступом к полям класса. Если у нас имеется десяток и более полей, то определять каждое поле и писать для него однотипное свойство было бы утомительно. Поэтому в .NET были добавлены автоматические свойства (автосвойства). Сокращенная запись автосвойств прикреплена к посту.
Преимущество автосвойств заключается в том, что при необходимости их можно развернуть в полноценные свойства и через них управлять доступом к переменным. Если бы мы использовали обычные переменные вместо автосвойств, то при необходимости ограничить доступ к переменным нам, возможно, пришлось исправить множество имеющегося кода в программе.
Преимущество автосвойств заключается в том, что при необходимости их можно развернуть в полноценные свойства и через них управлять доступом к переменным. Если бы мы использовали обычные переменные вместо автосвойств, то при необходимости ограничить доступ к переменным нам, возможно, пришлось исправить множество имеющегося кода в программе.
Казалось бы банальный вопрос, но как правильно посчитать количество символов в строке?
https://proglib.io/w/c2cef2b0
https://proglib.io/w/c2cef2b0
Meziantou's blog
How to correctly count the number of characters of a string - Gérald Barré
Counting characters may seem trivial. Indeed, you can use the string.Length property, can't you? Unfortunately, this is not that trivial. If you remember my previous post about comparing strings, you know that strings can be very tricky 😃 Let's use the character…
Примеры построения архитектуры .Net приложений:
– eShopOnContainers
– eShopOnWeb
– grpc-for-wcf-developers
– HealthChecks
– PerformanceMonitor
– eShopOnAzure
– MNISTTensorCNTK
– RecommendationEngine
– eShopOnContainers
– eShopOnWeb
– grpc-for-wcf-developers
– HealthChecks
– PerformanceMonitor
– eShopOnAzure
– MNISTTensorCNTK
– RecommendationEngine
GitHub
GitHub - dotnet-architecture/eShopOnContainers: Cross-platform .NET sample microservices and container based application that runs…
Cross-platform .NET sample microservices and container based application that runs on Linux Windows and macOS. Powered by .NET 7, Docker Containers and Azure Kubernetes Services. Supports Visual St...
Как безопасно подключаться к API в .NET Core, используя C#? HttpClient — это решение, но как правильно его использовать, чтобы не вызвать дальнейших проблем? Разбираемся: https://proglib.io/w/9cb945fe
YouTube
Using HttpClient in .NET Core to Connect to APIs in C#
How do you safely connect to APIs in .NET Core using C#? HttpClient is the way to go, but doing right is important. Otherwise, you could exhaust your connection pool and cause issues in your application.
Patreon: https://www.patreon.com/IAmTimCorey
Source…
Patreon: https://www.patreon.com/IAmTimCorey
Source…
App Metrics — кроссплатформенная .NET библиотека с открытым исходным кодом, используемая для записи и представления метрик в приложении.
https://proglib.io/w/0f505c7a
https://proglib.io/w/0f505c7a
GitHub
GitHub - AppMetrics/AppMetrics: App Metrics is an open-source and cross-platform .NET library used to record and report metrics…
App Metrics is an open-source and cross-platform .NET library used to record and report metrics within an application. - AppMetrics/AppMetrics
В строках 12 и 13 перечислены 2 способа преобразования объекта Person к типу Employee. Какой из них предпочтительнее?
Anonymous Poll
75%
Employee empl1
25%
Employee empl2
Использование оператора
Операция преобразования (строка 13) в случае неудачного преобразования генерирует исключение. Мы можем отлавливать данное исключение через конструкцию try...catch. Однако, как правило, обработка исключений является более затратной операций по сравнению с простой проверкой в блоке if.
as
(строка 12) является более предпочтительным, поскольку в случае неудачного преобразования этот оператор возвращает значение null
. При доступе к объекту через переменную мы можем проверить её значение на null.Операция преобразования (строка 13) в случае неудачного преобразования генерирует исключение. Мы можем отлавливать данное исключение через конструкцию try...catch. Однако, как правило, обработка исключений является более затратной операций по сравнению с простой проверкой в блоке if.