Профессор Си
2.95K subscribers
94 photos
2 videos
111 links
Уроки, советы, новости C#.
Download Telegram
Задачка: Сколько гласных букв

Напишите функцию, которая принимает строку и возвращает количество (count) содержащихся в ней гласных букв.

Примеры:
CountVowels("Celebration") ➞ 5
CountVowels("Palm") ➞ 1
CountVowels("Prediction") ➞ 4

Пишите ваши варианты в комментариях. Ответ будет в канале завтра.

#задача
using System.Linq;
public class Program
{
public static int CountVowels(string str)
=> str.Count(a=>$"aeiouAEIOU".Contains(a));
}


#задача #ответ
Media is too big
VIEW IN TELEGRAM
😍 Мечтаете создать игру мечты? Мы научим этому на нашем курсе "Unreal Engine Game Developer. Basic" с нуля! Cтарт уже 30 июля. Стать студентом: https://vk.cc/cNWKp8

Неважно, на каком вы уровне и что знаете в геймдев. Наши опытные педагоги приведут вас к вашей первой игре и научат вcему, что знают сами. А еще наши студенты попали на реальные стажировки в проекты Red Star Games и не только. Все еще чего-то ждете?

🔓 Вперед к знаниям! Стать студентом курса со скидкой в 10%: https://vk.cc/cNWKp8

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Вопрос на засыпку. Почему нельзя указать модификаторы доступа для элементов в интерфейсе?

Ответ опубликуем вечером.

Пишите в комментариях ваш вариант!

#questions
1🤬1
Почему нельзя указать модификаторы доступа для элементов в интерфейсе?

Ответ:

Они всегда публичные, так как цель интерфейса – определение функционала для реализации его классом. Это касается также и констант и статических переменных, которые в классах и структурах по умолчанию имеют модификатор private. В интерфейсах же они имеют по умолчанию модификатор public.

#questions
Рефлексия тормозит приложения? Пора управлять компилятором!

Устали писать одинаковый код снова и снова? Рефлексия съедает производительность в рантайме, а генерация boilerplate-кода отнимает часы. Современный C# предлагает элегантное решение — заставить компилятор работать на вас.

🎥 Вебинар «Заставьте компилятор работать на вас: магия метапрограммирования с Source Generators в C#»
📅 6 августа, 20:00
👩‍🏫 Елена Сычева

Разберём на практике:
→ Почему рефлексия — узкое место и как Source Generators решают проблему на этапе компиляции
→ Устройство компилятора Roslyn: синтаксические деревья и семантическая модель
→ Live-coding первого Source Generator для избавления от рутинного кода
→ Применение генераторов в популярных библиотеках .NET 7+

Результат: вы научитесь создавать собственные генераторы кода, которые автоматизируют рутину и повышают производительность приложений без runtime-накладных расходов.

Вебинар проходит в рамках курса «C# углубленный» — участники получают эксклюзивные условия обучения.

Регистрация: https://vk.cc/cO82JC

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Задачка: Рекурсия для повторения строки n количество раз

Напишите рекурсивную функцию, которая принимает два параметра и повторяет строку n раз. Первый параметр txt - это повторяемая строка, а второй параметр - количество повторений строки.

Примеры:
Repetition("ab", 3) ➞ "ababab"
Repetition("kiwi", 1) ➞ "kiwi"
Repetition("cherry", 2) ➞ "cherrycherry"

Пишите ваши варианты в комментариях. Ответ будет в канале завтра.

#задача
public class Program
{
public static string Repetition(string txt, int n)
{
return n == 0 ? "" : txt + Repetition(txt, n - 1);
}
}


#задача #ответ
🤨4
Хотите разобраться в тестировании API на ASP.NET Core?

➡️ Присоединяйтесь к открытому уроку «Тестирование API в ASP.NET Core: Интеграция и Нагрузка» 5 августа в 20:00 МСК. На вебинаре мы:

- Разберем ключевые концепции интеграционного и нагрузочного тестирования.
- Научимся писать интеграционные тесты с популярными библиотеками.
- Освоим инструменты для нагрузочного тестирования и анализа результатов.

📗 Этот урок — отличная подготовка к курсу «C# ASP.NET Core разработчик», который стартует совсем скоро. Все участники вебинара получат скидку на обучение!

Записаться на вебинар → https://vk.cc/cOaj0K

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
1
Ваши коллеги уже изучают .NET 10 → а вы готовы остаться на старых версиях?

Каждый релиз .NET приносит десятки нововведений, которые меняют подходы к разработке. Пока одни программисты осваивают новый синтаксис C# 14 и возможности runtime, другие продолжают писать код «по-старому» и удивляются, почему их решения выглядят устаревшими.

.NET 10 — это не просто очередное обновление. Это LTS-версия, которая задаст стандарты разработки на ближайшие годы. Новый синтаксический сахар, field и extension в C# 14, обновления в MAUI и EF Core — всё это уже меняет то, как пишут современные приложения.

Вебинар «Что нового в .NET 10 для разработчиков» в рамках курса «C# углубленный»

18 августа, 20:00
→ Антон Герасименко

Программа:
→ Обзор ключевых нововведений .NET 10 и их практическое применение
→ Синтаксические конструкции C# 14: сахар, field, extension
→ Изменения в runtime и их влияние на производительность приложений
→ Новые возможности MAUI и EF Core для современной разработки

После вебинара вы поймёте, как адаптировать свой код под новые стандарты, сможете читать и писать современный C# код и не будете отставать от коллег, которые уже перешли на актуальные версии.

Бесплатная регистрация — займите место в числе первых: https://vk.cc/cOxyKS

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
⚙️ Микросервисы начинают тормозить под нагрузкой?

💡 Узнайте, как масштабировать и оптимизировать систему с помощью CQRS и Event Sourcing на .NET Aspire.

На открытом вебинаре «Оптимизация микросервисов с CQRS и Event Sourcing на .NET Aspire» 19 августа в 20:00 МСК разберем:
◽️ Ограничения классических микросервисов при высокой нагрузке.
◽️ Принципы разделения команд и запросов (CQRS) и хранения истории через Event Sourcing.
◽️ Практическую реализацию: сервис заказов с «команда-обработчик» и хранением событий в MongoDB.
◽️ Конфигурацию проекций для чтения данных.

❗️ Вы освоите оркестрацию через .NET Aspire (API Gateway, Order Service, база событий), внедрите логирование и трейсинг через OpenTelemetry, а также протестируете создание заказа, обновление статуса и визуализацию потока событий.

➡️ Посетите открытый урок и получите скидку на большое обучение «C# ASP.NET Core разработчик»: https://vk.cc/cOzzQu

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Вопрос на засыпку. В чем разница между циклами while и for?

Ответ опубликуем завтра.

Пишите в комментариях ваш вариант!

#questions
💅2
В чем разница между циклами while и for?

Ответ:

Оба цикла используются, когда нужно многократно выполнить единицу кода. Разница в том, что цикл for используется, когда вы знаете, сколько раз вам нужно выполнить итерацию кода. А цикл while мы применяем, когда нужно повторять что-то до тех пор, пока заданное утверждение не станет истинным.

#questions
🤡10😁3🤩2🔥1
💻 Хотите создавать мощные web-приложения с использованием C# ASP.NET Core?

Присоединяйтесь к курсу «C# ASP.NET Core разработчик» от OTUS и получите все необходимые навыки для успешной разработки! На курсе вы:
— Научитесь разрабатывать высоконагруженные API на GraphQL, gRPC и SignalR Core.
— Освоите JavaScript, ReactJS и интеграцию с ASP.NET Core.
— Примените Docker и Kubernetes и получите навыки работы с микросервисной архитектурой.

🔥 Программа курса обновляется с учетом актуальных требований рынка, а диплом OTUS ценится в ведущих IT-компаниях.

❗️Старт обучения совсем скоро! Пройдите короткое вступительное тестирование и получите скидку и запись трех топовых вебинара: https://vk.cc/cONkSC

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Сколько родительских классов может иметь производный класс?
Anonymous Quiz
75%
Один
2%
Не больше двух
1%
Не больше трех
23%
Неограниченное число
🔥1🤩1
Ваши .NET проекты превратились в спагетти-код — пора перейти к Clean Architecture

Пока одни разработчики продолжают страдать с legacy-кодом, другие применяют Clean Architecture и создают гибкие, тестируемые приложения. Виктор Дзицкий покажет эволюционный путь от классической многослойной архитектуры к современным принципам проектирования.

Вебинар «От N-Layer к Clean Architecture: эволюция проектирования .NET приложений» в рамках курса «C# Developer. Professional»

→ 27 августа, 20:00

Программа:

→ Сравнение подходов: классическая N-Layer vs современная Clean Architecture
→ Принцип инверсии зависимостей (DIP) и Dependency Injection как основа трансформации
→ Практическая демонстрация: как реорганизовать N-Layer проект в Clean Architecture
→ Достижение независимости бизнес-логики от инфраструктуры

Бесплатная регистрация — превратите хаос в порядок: https://vk.cc/cOOzMX

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Вопрос на засыпку. Что такое делегаты в .NET?

Ответ опубликуем завтра.

Пишите в комментариях ваш вариант!

#questions
Что такое делегаты в .NET?

Ответ:

Делегат в .NET похож на указатель функции в C или C++. Использование делегата позволяет программисту заключить ссылку на метод внутри объекта делегата. Затем объект делегата может быть передан в код, который может вызвать метод, на который ссылается ссылка, необязательно знать во время компиляции, какой метод будет вызван.

Кроме того, можно использовать делегат для создания пользовательских событий в классе. Например:

public delegate void FooDelegate();

class FooClass
{
// кастомное событие
public event FooDelegate FooEvent;
}

FooClass FooObj = new FooClass()
FooObj.FooEvent += new FooDelegate();

#questions
2👍2