Профессор Си
2.79K subscribers
56 photos
1 video
84 links
Уроки, советы, новости C#.


@anothertechrock
@aldrson
Download Telegram
Что выведет строка
Console.WriteLine($"{0.12345f:F3}")?
Anonymous Quiz
7%
0.12345
11%
0.12345 на новой строке
60%
0.123
22%
0.123 на новой строке
🥴6👍3🔥1🤡1
Многомерный массив в C# - это...
Anonymous Quiz
2%
int[]
52%
int[,]
42%
int[][]
4%
В C# нет многомерных массивов
👍8👎51
Какие из модификаторов не может иметь абстрактный класс?
Anonymous Quiz
24%
static, internal
52%
sealed, static
24%
sealed, internal
🤡7👍3🔥1🦄1
💡 Shuffle() в действии

До сих пор в LINQ не было встроенного метода для случайного перемешивания коллекций. Разработчикам приходилось использовать разные неэффективные методы.

В новом PR был добавлен метод Shuffle() в IEnumerable<T>. Будем ждать в одном из следующих релизов .NET

Пример будущего кода:
var shuffledItems = items.Shuffle();


Подробности:

🔗 Обсуждение необходимости метода

🔗 Реализация в .NET

🤔 Книги для шарписта
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5👍1
@rabotacschap - работа по C# и Unity. Подписывайтесь.
⚙️ Гибридное кэширование

Гибридный кэш это баланс между скоростью и масштабируемостью. Он объединяет два уровня хранения данных:

1️⃣ Кэш в памяти. Хранит часто используемые данные локально, обеспечивая моментальный доступ.

2️⃣ Распределенный кэш: Redis, SQL Server Cache. Используется для хранения данных, доступных нескольким серверам.

То есть это метод, при котором данные сначала проверяются в локальном кэше, а если их там нет, запрашиваются из распределенного кэша, например, Redis.

Настройка гибридного кэша в .NET

Чтобы реализовать гибридное кэширование можно использовать HybridCache, который сочетает кэш в памяти и Redis.

1️⃣ Настроить локальный кэш

2️⃣ Добавить Redis как распределенный кэш

3️⃣ Реализовать логику работы с кэшем, используя стратегию «сначала память, потом Redis»

➡️ Подробнее о реализации HybridCache

🤔 Книги для шарписта
Please open Telegram to view this post
VIEW IN TELEGRAM
👍21
⚙️ Гибридное кэширование

Гибридный кэш это баланс между скоростью и масштабируемостью. Он объединяет два уровня хранения данных:

1️⃣ Кэш в памяти. Хранит часто используемые данные локально, обеспечивая моментальный доступ.

2️⃣ Распределенный кэш: Redis, SQL Server Cache. Используется для хранения данных, доступных нескольким серверам.

То есть это метод, при котором данные сначала проверяются в локальном кэше, а если их там нет, запрашиваются из распределенного кэша, например, Redis.

Настройка гибридного кэша в .NET

Чтобы реализовать гибридное кэширование можно использовать HybridCache, который сочетает кэш в памяти и Redis.

1️⃣ Настроить локальный кэш

2️⃣ Добавить Redis как распределенный кэш

3️⃣ Реализовать логику работы с кэшем, используя стратегию «сначала память, потом Redis»

➡️ Подробнее о реализации HybridCache

🤔 Книги для шарписта
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍1👌1
This media is not supported in your browser
VIEW IN TELEGRAM
Игра или жизнь? 🤔

Наш канал GameDev разработка для тех кто хочет начать карьеру в Game индустрии и для тех, кто увлекается играми.

Контент:
1. туториалы
2. советы и подсказки
3. визуалка
4. гифки из игр
5. книги

Туториалы по GameDev от первого лица.

Воксельная графика, inspiration контент

Подписывайся на @turbogamedev
🎉21👍1
😴🛠 Паттерн «Состояние»

Паттерн «Состояние» — это поведенческий паттерн проектирования, который позволяет объекту изменять своё поведение в зависимости от текущего состояния. Он помогает избежать большого количества условных операторов и делает код более читаемым, гибким и модульным.

Когда использовать паттерн «Состояние»?
Когда у объекта есть несколько состояний, и его поведение зависит от текущего состояния.
Когда в коде слишком много if-else или switch-case, которые проверяют состояние объекта.
Когда требуется обеспечить легкое добавление новых состояний без изменения существующего кода.

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

Недостатки паттерна
Увеличение числа классов, так как каждое состояние требует отдельной реализации.
Может быть избыточным для простых сценариев.

🤔 Книги для шарписта
Please open Telegram to view this post
VIEW IN TELEGRAM
C# 12 in a Nutshell

Автор:
Joseph Albahari
Год издания:
2023

#csharp #en

Скачать книгу
👍31
Задачка: Абсолютная сумма

Возьмите массив целых чисел (положительных или отрицательных, или и тех, и других) и верните сумму абсолютного значения каждого элемента.

Примеры:
getAbsSum([2, -1, 4, 8, 10]) ➞ 25
getAbsSum([2, 4, 6, 8, 10]) ➞ 30
getAbsSum([-1]) ➞ 1

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

#задача
using System;
using System.Linq;

public class Program
{
public static int getAbsSum(int[] arr)
{
return arr.Select(Math.Abs).Sum();
}
}

#задача #ответ
👍4
Задачка: Поменять местами

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

Примеры:
NameShuffle("Donald Trump") ➞ "Trump Donald"
NameShuffle("Rosie O'Donnell") ➞ "O'Donnell Rosie"
NameShuffle("Seymour Butts") ➞ "Butts Seymour"

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

#задача
🤨6👍5🤡2🤯1
using System.Linq;
public class Program
{
public static string NameShuffle(string str)
{
return string.Join(" ", str.Split(' ').Reverse());
}
}

#задача #ответ
🤡10👍2
Вопрос на засыпку. В чем разница между constant и readonly?

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

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

#questions
🤡8🥰1👏1
В чем разница между constant и readonly?

Ответ:

constant и readonly имеют много общего, но есть некоторые важные различия:

1. constant оценивается во время компиляции, в то время как readonly оценивается во время выполнения.
2. constant поддерживает только переменные типа значения (единственным исключением являются строки), в то время как readonly может содержать переменные ссылочного типа.
3. constant следует использовать, когда значение не меняется во время выполнения, а readonly используется в основном тогда, когда фактическое значение неизвестно до выполнения.
4. readonly может инициализироваться только во время объявления или в конструкторе.

#questions
👍5
Пусть объявлен кортеж: var tuple = (5, 10). Как обратиться к значению 5?
Anonymous Quiz
25%
tuple[0]
63%
tuple.Item1
7%
tuple.first
5%
tuple.5
Что покажет код, представленный на картинке?
Anonymous Quiz
12%
00
34%
11
30%
12
12%
01
12%
Ошибку
Роадмап для изучения C# с нуля до первой работы?

#мысливслух

C# — универсальный язык, который применяется в разработке игр (Unity), backend-сервисов (ASP.NET), десктопных приложений. Но как его изучить с нуля так, чтобы не застрять в бесконечных курсах, а реально выйти на первую работу?

🔹 1. Освой базовый синтаксис
🟠 Переменные, типы данных, операторы.
🟠 Условные конструкции (if, switch).
🟠 Циклы (for, while).
🟠 Массивы и списки.
🟠 Методы и работа с исключениями.

Лучше сразу писать код, а не просто читать теорию. Можно решать задачи на CodeWars, LeetCode, HackerRank.

🔹 2. Разберись с ООП
C# — объектно-ориентированный язык, поэтому важно понимать инкапсуляцию, наследование, полиморфизм. Освой:
🟠Классы, структуры, интерфейсы.
🟠 Коллекции (List, Dictionary, Queue).
🟠Делегаты и события.

🔹 3. Работа с файлами, потоками и LINQ
C# часто используется для работы с данными, поэтому полезно освоить:
🟠Чтение/запись файлов (StreamReader, StreamWriter).
🟠 Работа с JSON и XML (Newtonsoft.Json).
🟠 LINQ для обработки коллекций.

🔹 4. Изучи базы данных
Работа с БД — обязательный навык для C#-разработчиков. Минимум, который нужно знать:
🟠 SQL (SELECT, JOIN, INSERT, UPDATE, DELETE).
🟠Entity Framework — ORM для работы с базой в C#.
🟠 Настройка подключения к БД (DbContext, Migrations).

🔹 5. Выбери направление
C# применяется в разных областях, поэтому лучше определиться заранее:
🟠GameDev — изучай Unity, MonoBehaviour, Physics, UI Toolkit.
🟠 Backend — учи ASP.NET Core, REST API, JWT, Docker.
🟠Desktop — разберись с WPF, WinForms, MAUI.

🔹 6. Сделай пару пет-проектов
Работодатели хотят видеть, что ты не просто прошел курс, а что-то реально делал:
🟠 API-сервис на ASP.NET Core + Entity Framework.
🟠 Простой 2D-платформер на Unity.
🟠CRUD-приложение для заметок с базой данных.

🔹 7. Готовься к собеседованиям
🟠 Вопросы по C#: принципы ООП, работа с памятью, отличие struct от class.
🟠 Алгоритмы: сортировки, поиск в массивах, работа с рекурсией.
🟠 Практика: решай задачи, пиши код на реальных проектах.

⚡️ Вывод
выучить C# можно, если работать каждый день. Главное — не зацикливаться на теории, а писать реальные проекты

Как вы начали учить C#? В каком направлении хотите развиваться?
Please open Telegram to view this post
VIEW IN TELEGRAM
👌84👍1