Задачи для Самостоятельного Решения
Задача 1: Реализация Кэша.
Вам необходимо написать простую реализацию кэша с ограниченным размером, которая будет хранить результаты вычислений. Если результат уже есть в кэше, он должен возвращаться, а если нет — вычисляться и сохраняться в кэше.
Задача 1: Реализация Кэша.
Вам необходимо написать простую реализацию кэша с ограниченным размером, которая будет хранить результаты вычислений. Если результат уже есть в кэше, он должен возвращаться, а если нет — вычисляться и сохраняться в кэше.
public class SimpleCache<TKey, TValue>Пример использования:
{
private readonly Dictionary<TKey, TValue> cache = new Dictionary<TKey, TValue>();
private readonly int maxSize;
public SimpleCache(int maxSize)
{
this.maxSize = maxSize;
}
public TValue GetOrCompute(TKey key, Func<TValue> computeFunction)
{
// Ваш код здесь
}
}
SimpleCache<string, int> intCache = new SimpleCache<string, int>(5);
int result1 = intCache.GetOrCompute("five", () => 5);
int result2 = intCache.GetOrCompute("ten", () => 10);
int result3 = intCache.GetOrCompute("five", () => 5); // Должен возвращать сохраненное значение
❤11👍7
❓ЧТО ДОЛЖЕН ЗНАТЬ C#/. Net РАЗРАБОТЧИК ДЛЯ ДЛЯ ТРУДОУСТРОЙСТВА❓
1. Язык программирования C#
Объяснять не стоит.
2. ООП
Поскольку C# является объектно-ориентированным языком, он требует изучения и полного понимания ООП парадигм.
[Статья на эту тему]
[Видео на эту тему]
3. Алгоритмы и структуры данных
Понимание структур данных помогает управлять сложностью программ и создавать высокопроизводительные приложения с эффективным использованием памяти. Знание алгоритмов дает возможность разрабатывать эффективные решения для различных задач.
[Статья на эту тему]
4. Базы данных
Любое приложение обрабатывает данные – от интернет-магазинов до социальных сетей. Базы данных (БД) служат хранилищем для регистрации, авторизации, отправки данных и сохранения конфигураций. Для .NET разработчиков важны базовые знания по БД: термины, реляционные БД, нормализация, отношения (one-to-one, one-to-many, many-to-many), поиск и упорядочивание данных, работа с таблицами.
[Статья на эту тему]
[Видео-курс на эту тему]
5. SQL - Structured Query Language
Structured Query Language (SQL) представляет собой декларативный язык для работы с базами данных. Он описывает компоненты запросов и требуемые результаты, не задавая конкретных методов их получения. Изучение SQL тесно связано с теорией баз данных, обеспечивая практические навыки в написании запросов при углубленном изучении баз данных.
[Статья на эту тему]
[Видео-курс на эту тему]
6. Entity Framework Core
Коротко, технология обеспечивает абстракцию от базы данных, позволяя программистам работать с данными независимо от типа хранилища.
[Статья на эту тему]
[Видео на эту тему]
Стоит делать вторую часть?
1. Язык программирования C#
Объяснять не стоит.
2. ООП
Поскольку C# является объектно-ориентированным языком, он требует изучения и полного понимания ООП парадигм.
[Статья на эту тему]
[Видео на эту тему]
3. Алгоритмы и структуры данных
Понимание структур данных помогает управлять сложностью программ и создавать высокопроизводительные приложения с эффективным использованием памяти. Знание алгоритмов дает возможность разрабатывать эффективные решения для различных задач.
[Статья на эту тему]
4. Базы данных
Любое приложение обрабатывает данные – от интернет-магазинов до социальных сетей. Базы данных (БД) служат хранилищем для регистрации, авторизации, отправки данных и сохранения конфигураций. Для .NET разработчиков важны базовые знания по БД: термины, реляционные БД, нормализация, отношения (one-to-one, one-to-many, many-to-many), поиск и упорядочивание данных, работа с таблицами.
[Статья на эту тему]
[Видео-курс на эту тему]
5. SQL - Structured Query Language
Structured Query Language (SQL) представляет собой декларативный язык для работы с базами данных. Он описывает компоненты запросов и требуемые результаты, не задавая конкретных методов их получения. Изучение SQL тесно связано с теорией баз данных, обеспечивая практические навыки в написании запросов при углубленном изучении баз данных.
[Статья на эту тему]
[Видео-курс на эту тему]
6. Entity Framework Core
Коротко, технология обеспечивает абстракцию от базы данных, позволяя программистам работать с данными независимо от типа хранилища.
[Статья на эту тему]
[Видео на эту тему]
Стоит делать вторую часть?
👍25❤5👨💻1
❓ЧТО ДОЛЖЕН ЗНАТЬ C#/. Net РАЗРАБОТЧИК ДЛЯ ДЛЯ ТРУДОУСТРОЙСТВА. ЧАСТЬ 2❓
7. LINQ
Language Integrated Query (LINQ), или "язык интегрированных запросов", представляет собой удобную и мощную технологию доступа к данным в среде .NET. Основное преимущество этого языка запросов заключается в возможности применения единообразного подхода к извлечению данных из различных источников, таких как XML-документы, XML-потоки, наборы данных ADO.NET, SQL-базы данных, массивы, коллекции .NET и многие другие.
LINQ предоставляет разработчикам интуитивно понятный синтаксис запросов, что делает код более читаемым и поддерживаемым. Эта технология позволяет обрабатывать данные с использованием выражений запросов, что значительно упрощает кодирование и повышает производительность разработчика.
[Статья на эту тему]
[Видео на эту тему]
8. ASP.NET
Active Server Pages для .NET (ASP.NET) - это современная платформа, использующая среду выполнения .NET Framework. Она предоставляет все необходимые службы для разработки серверных веб-приложений и веб-сервисов. ASP.NET является эволюцией более ранней технологии Microsoft ASP (Active Server Pages).
ASP.NET обеспечивает эффективное взаимодействие между веб-приложениями и сервером, обеспечивая высокую производительность и надежность.
[Руководство на эту тему]
9. ASP.NET Core
ASP.NET Core - это инновационный фреймворк от компании Microsoft, созданный на основе среды выполнения .NET Core. Он представляет собой эволюцию платформы ASP.NET, призванную обеспечить разработку современных и высококачественных веб-приложений. Однако, ASP.NET Core не просто обновление предыдущей технологии; это качественный переход к новому уровню разработки.
Основной драйвер изменений в ASP.NET Core - это перенос на платформу .NET Core, что предоставляет преимущества в масштабируемости, производительности и кроссплатформенности. Это позволяет разработчикам создавать приложения, которые легко масштабируются и работают на различных операционных системах.
[Статья-руководство на эту тему]
[Видео-курс]
10. Git
Git - это распределенная система управления версиями, предоставляющая эффективный и гибкий способ отслеживать изменения в коде и координировать работу команды разработчиков. Созданная Линусом Торвальдсом, Git стала наиболее популярной среди разработчиков по всему миру благодаря своей простоте использования и мощным возможностям.
Системы управления версиями, такие как Git, позволяют разработчикам сохранять историю изменений в своем коде. Каждый раз, когда вносятся изменения, Git создает новую "версию" проекта, что обеспечивает прозрачность и возможность возврата к предыдущим состояниям проекта.
[Git]
11. Основы FrontEnd
В многих вакансиях предполагается, что .NET разработчик серверной части также обладает знанием фронтенд-технологий, используемых на клиентской стороне веб-приложений:
HTML & CSS: Представляют собой основы веб-верстки. HTML служит каркасом, определяющим основную структуру внешнего вида, в то время как CSS (каскадные таблицы стилей) позволяют улучшить внешний вид приложения. Это легкие языки верстки, которые можно изучить быстро и без труда.
Основы JavaScript (JS): JavaScript - язык программирования, используемый для создания программной логики на клиентской стороне веб-приложений и для реализации различных анимаций. JavaScript является одним из наиболее легких языков программирования, поэтому при наличии хорошего знания C# освоение JS будет быстрым процессом.
Стоит делать подобные посты, была ли полезной данная информация?
7. LINQ
Language Integrated Query (LINQ), или "язык интегрированных запросов", представляет собой удобную и мощную технологию доступа к данным в среде .NET. Основное преимущество этого языка запросов заключается в возможности применения единообразного подхода к извлечению данных из различных источников, таких как XML-документы, XML-потоки, наборы данных ADO.NET, SQL-базы данных, массивы, коллекции .NET и многие другие.
LINQ предоставляет разработчикам интуитивно понятный синтаксис запросов, что делает код более читаемым и поддерживаемым. Эта технология позволяет обрабатывать данные с использованием выражений запросов, что значительно упрощает кодирование и повышает производительность разработчика.
[Статья на эту тему]
[Видео на эту тему]
8. ASP.NET
Active Server Pages для .NET (ASP.NET) - это современная платформа, использующая среду выполнения .NET Framework. Она предоставляет все необходимые службы для разработки серверных веб-приложений и веб-сервисов. ASP.NET является эволюцией более ранней технологии Microsoft ASP (Active Server Pages).
ASP.NET обеспечивает эффективное взаимодействие между веб-приложениями и сервером, обеспечивая высокую производительность и надежность.
[Руководство на эту тему]
9. ASP.NET Core
ASP.NET Core - это инновационный фреймворк от компании Microsoft, созданный на основе среды выполнения .NET Core. Он представляет собой эволюцию платформы ASP.NET, призванную обеспечить разработку современных и высококачественных веб-приложений. Однако, ASP.NET Core не просто обновление предыдущей технологии; это качественный переход к новому уровню разработки.
Основной драйвер изменений в ASP.NET Core - это перенос на платформу .NET Core, что предоставляет преимущества в масштабируемости, производительности и кроссплатформенности. Это позволяет разработчикам создавать приложения, которые легко масштабируются и работают на различных операционных системах.
[Статья-руководство на эту тему]
[Видео-курс]
10. Git
Git - это распределенная система управления версиями, предоставляющая эффективный и гибкий способ отслеживать изменения в коде и координировать работу команды разработчиков. Созданная Линусом Торвальдсом, Git стала наиболее популярной среди разработчиков по всему миру благодаря своей простоте использования и мощным возможностям.
Системы управления версиями, такие как Git, позволяют разработчикам сохранять историю изменений в своем коде. Каждый раз, когда вносятся изменения, Git создает новую "версию" проекта, что обеспечивает прозрачность и возможность возврата к предыдущим состояниям проекта.
[Git]
11. Основы FrontEnd
В многих вакансиях предполагается, что .NET разработчик серверной части также обладает знанием фронтенд-технологий, используемых на клиентской стороне веб-приложений:
HTML & CSS: Представляют собой основы веб-верстки. HTML служит каркасом, определяющим основную структуру внешнего вида, в то время как CSS (каскадные таблицы стилей) позволяют улучшить внешний вид приложения. Это легкие языки верстки, которые можно изучить быстро и без труда.
Основы JavaScript (JS): JavaScript - язык программирования, используемый для создания программной логики на клиентской стороне веб-приложений и для реализации различных анимаций. JavaScript является одним из наиболее легких языков программирования, поэтому при наличии хорошего знания C# освоение JS будет быстрым процессом.
👍35🔥3❤2
Что будет выведено на экран в результате выполнения данного кода?
Anonymous Quiz
47%
6
15%
10
18%
12
12%
14
8%
16
👍20❤1
💡Идеи-фичи для кода. Часть 1
Record type feature.
1. Record Type в C# 9.0:
- Record в C# 9.0 представляет собой новый тип данных, который по сути является ссылочным типом.
- Однако при присвоении ссылка на объект не передается; вместо этого происходит копирование объекта, что делает его более похожим на значимые типы.
- Record обладает структурным подходом при сравнении объектов, что означает, что они сравниваются по значениям своих полей, а не по ссылкам.
2. Встроенные методы:
- Record автоматически генерирует ряд методов, таких как GetHashCode, методы Copy и Clone.
- Также автоматически переопределен метод ToString.
3. Дополнительные особенности:
- Record имеет короткую форму записи при объявлении, что делает код более лаконичным.
- По умолчанию имеет поддержку Deconstruction, что позволяет разбирать экземпляр record на отдельные переменные.
- Можно использовать ключевое слово with при копировании, что позволяет создавать новые экземпляры с измененными значениями полей.
Пример использования:
&----------------------------------------&
public record Person(string FirstName, string LastName);
// Использование
var person1 = new Person("John", "Doe");
var person2 = new Person("John", "Doe");
bool areEqual = person1 == person2; // true, потому что сравнение по значениям полей
&----------------------------------------&
Оставьте своё впечатление о посте, стоит делать подобное, что изменить?
Record type feature.
1. Record Type в C# 9.0:
- Record в C# 9.0 представляет собой новый тип данных, который по сути является ссылочным типом.
- Однако при присвоении ссылка на объект не передается; вместо этого происходит копирование объекта, что делает его более похожим на значимые типы.
- Record обладает структурным подходом при сравнении объектов, что означает, что они сравниваются по значениям своих полей, а не по ссылкам.
2. Встроенные методы:
- Record автоматически генерирует ряд методов, таких как GetHashCode, методы Copy и Clone.
- Также автоматически переопределен метод ToString.
3. Дополнительные особенности:
- Record имеет короткую форму записи при объявлении, что делает код более лаконичным.
- По умолчанию имеет поддержку Deconstruction, что позволяет разбирать экземпляр record на отдельные переменные.
- Можно использовать ключевое слово with при копировании, что позволяет создавать новые экземпляры с измененными значениями полей.
Пример использования:
&----------------------------------------&
public record Person(string FirstName, string LastName);
// Использование
var person1 = new Person("John", "Doe");
var person2 = new Person("John", "Doe");
bool areEqual = person1 == person2; // true, потому что сравнение по значениям полей
&----------------------------------------&
Оставьте своё впечатление о посте, стоит делать подобное, что изменить?
👍15❤4
Задача: "Шифровальная машина времени"
Вы решаете создать программу-шифровальную машину времени, которая может принимать текстовые сообщения из прошлого и отправлять их в будущее, используя сложный алгоритм шифрования. Ваша задача - реализовать две основные функции: шифрование и дешифрование.
Шифрование:
1. Принимает ввод пользователя в виде текстового сообщения.
2. Применяет уникальный алгоритм шифрования, который включает в себя комбинацию криптографических хэшей, математических операций и временных компонентов.
3. Возвращает зашифрованное сообщение.
Дешифрование:
1. Принимает зашифрованное сообщение.
2. Расшифровывает его, используя тот же уникальный алгоритм, но в обратном порядке.
3. Возвращает исходное текстовое сообщение.
Вот несколько подсказок, которые могут помочь в реализации:
1. Для уникальности шифрования используйте текущее время или дату как один из компонентов алгоритма.
2. Включите в алгоритм несколько различных криптографических хэш-функций.
3. Используйте случайные математические операции, чтобы усложнить алгоритм.
Сделайте так, чтобы каждый раз, при запуске программы, создавался новый уникальный ключ шифрования.
Отправить задание на проверку(@azusagavo)
Наш чат
Вы решаете создать программу-шифровальную машину времени, которая может принимать текстовые сообщения из прошлого и отправлять их в будущее, используя сложный алгоритм шифрования. Ваша задача - реализовать две основные функции: шифрование и дешифрование.
Шифрование:
1. Принимает ввод пользователя в виде текстового сообщения.
2. Применяет уникальный алгоритм шифрования, который включает в себя комбинацию криптографических хэшей, математических операций и временных компонентов.
3. Возвращает зашифрованное сообщение.
Дешифрование:
1. Принимает зашифрованное сообщение.
2. Расшифровывает его, используя тот же уникальный алгоритм, но в обратном порядке.
3. Возвращает исходное текстовое сообщение.
Вот несколько подсказок, которые могут помочь в реализации:
1. Для уникальности шифрования используйте текущее время или дату как один из компонентов алгоритма.
2. Включите в алгоритм несколько различных криптографических хэш-функций.
3. Используйте случайные математические операции, чтобы усложнить алгоритм.
Сделайте так, чтобы каждый раз, при запуске программы, создавался новый уникальный ключ шифрования.
Отправить задание на проверку(@azusagavo)
Наш чат
👍16❤2
Опрос: Почему следующий код не скомпилируется?
___
using System;
class Program
{
static void Main()
{
int[] numbers = { 3, 1, 4, 1, 5, 9, 2, 6, 5, 3 };
// Какие значения будут выведены на экран при выполнении следующих операций?
// Операция 1
Console.WriteLine($"Сумма элементов массива: {Sum(numbers)}");
// Операция 2
Console.WriteLine($"Максимальное значение в массиве: {Max(numbers)}");
// Операция 3
Console.WriteLine($"Индекс первого вхождения числа 5: {IndexOf(numbers, 5)}");
}
static int Sum(int[] arr) => arr.Sum();
static int Max(int[] arr) => arr.Max();
static int IndexOf(int[] arr, int target) => Array.IndexOf(arr, target);
}
___
Ответ:методы Sum и Max не являются встроенными методами в C#.
Если вы хотите использовать эти методы, вы должны добавить пространство имен System.Linq
___
using System;
class Program
{
static void Main()
{
int[] numbers = { 3, 1, 4, 1, 5, 9, 2, 6, 5, 3 };
// Какие значения будут выведены на экран при выполнении следующих операций?
// Операция 1
Console.WriteLine($"Сумма элементов массива: {Sum(numbers)}");
// Операция 2
Console.WriteLine($"Максимальное значение в массиве: {Max(numbers)}");
// Операция 3
Console.WriteLine($"Индекс первого вхождения числа 5: {IndexOf(numbers, 5)}");
}
static int Sum(int[] arr) => arr.Sum();
static int Max(int[] arr) => arr.Max();
static int IndexOf(int[] arr, int target) => Array.IndexOf(arr, target);
}
___
Ответ:
Если вы хотите использовать эти методы, вы должны добавить пространство имен System.Linq
👍34❤5🔥1
💬Делегаты в C#
📝Делегаты в C# представляют собой объекты, которые указывают на методы. Они позволяют передавать методы как параметры, хранить ссылки на методы и вызывать методы через эти ссылки.
📎
Допустим, у вас есть книга, которая хранит список различных советов. Каждый совет - это метод, который можно применить. А ваш делегат - это закладка в книге, указывающая на конкретный совет. Вы можете использовать эту закладку, чтобы найти нужный совет и применить его. Читать подробнее...
📝Делегаты в C# представляют собой объекты, которые указывают на методы. Они позволяют передавать методы как параметры, хранить ссылки на методы и вызывать методы через эти ссылки.
📎
Допустим, у вас есть книга, которая хранит список различных советов. Каждый совет - это метод, который можно применить. А ваш делегат - это закладка в книге, указывающая на конкретный совет. Вы можете использовать эту закладку, чтобы найти нужный совет и применить его. Читать подробнее...
👍22❤5🌭1🍌1
💬Интерполяция в C# - это метод форматирования строк, введенный в C# 6.0.
Он позволяет встраивать значения переменных и выражений непосредственно в строку без сложной конкатенации строк или использования форматирующих методов.
Используется для упрощения и улучшения читаемости кода при формировании строковых сообщений с вставкой переменных или результатов вычислений.
📝Например, в некоторых случаях гораздо удобнее вывести текст так:
Чем так:
Он позволяет встраивать значения переменных и выражений непосредственно в строку без сложной конкатенации строк или использования форматирующих методов.
Используется для упрощения и улучшения читаемости кода при формировании строковых сообщений с вставкой переменных или результатов вычислений.
📝Например, в некоторых случаях гораздо удобнее вывести текст так:
C# Интерполяция:
Console.WriteLine($"Ваше имя: {name} вам {age} лет");
Чем так:
C# Без интерполяции:
Console.WriteLine("Ваше имя: " + name + " вам " + age + " лет! ");
👍25❤4🤣3💯2🍌2
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10❤3
Справочник C#. Кратко, быстро, под рукой
Авторы: Евдокимов П.В., Дубовик Е.В.
Год: 2023
📂 Скачать книгу
👉 @KodBlog | #книга
Авторы: Евдокимов П.В., Дубовик Е.В.
Год: 2023
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤2🔥1
ULearnme — годный ресурс, где можно ненапряжно выучить C#. Все темы разбиты на 10 глав. В каждой — есть теория в тексте и видео, заметки по коду, а также промежуточные квизы для самопроверки изученного.
Среди тем не только C#, но и алгоритмы, сети и тестирование. В конце вас ждёт мини-игра, в которой можно отточить навыки чистого кода
⛓ Ссылка: https://ulearn.me/
👉 @KodBlog | #ресурсы
Среди тем не только C#, но и алгоритмы, сети и тестирование. В конце вас ждёт мини-игра, в которой можно отточить навыки чистого кода
Please open Telegram to view this post
VIEW IN TELEGRAM
❤7👍5
Параллельное программирование на С# и .NET Core
Авторы: Танвар Ш.
Год: 2022
📂 Скачать книгу
👉 @KodBlog | #books
Авторы: Танвар Ш.
Год: 2022
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🥰4🥴2
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Программирование. Базовый курс C#
Автор: Подбельский В. В.
Год: 2022
📂 Скачать книгу
👉 @KodBlog | #books
Автор: Подбельский В. В.
Год: 2022
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6👍3
Программирование на C# для начинающих
Автор: Васильев А. Н.
Год: 2023
📂 Скачать книгу
👉 @KodBlog | #books
Автор: Васильев А. Н.
Год: 2023
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤🔥5❤2