C# Portal | Программирование
13.3K subscribers
1.28K photos
131 videos
31 files
996 links
Присоединяйтесь к нашему каналу и погрузитесь в мир для C#-разработчика

Сотрудничество, реклама: @devmangx

Менеджер: @Spiral_Yuri

РКН: https://clck.ru/3FocB6
Download Telegram
🔥Полезные фишки для C# программистов🔥 Часть 1
Атрибут [Obsolete]. Этот атрибут позволяет пометить методы, например, которые скоро будут устаревшими, и при использовании этих методов компилятор выдаст предупреждение.
Пример выше⬆️

Чтобы полностью прекратить компиляцию кода вы можете передать атрибуту Obsolete второй параметр true. Код, использующий устаревший метод, не будет скомпилирован и выдаст ошибку.
Пример:
Obsolete("This method has been superseded by the IsInUse() method", true)
public void NotInUse()
👍104
🚀 10 Советов для C#-программистов 🚀

Если вы занимаетесь разработкой на C# или только начинаете свой путь в этом языке, вот 10 советов, которые помогут вам стать более успешным и эффективным C#-программистом:

- Изучите основы C#: Познакомьтесь с основами C# перед глубоким погружением.

- Используйте среду разработки с умом: Настройте Visual Studio или другую среду под свои нужды.

- Пишите читаемый код: Следуйте соглашениям об именовании и комментируйте код.

- Изучайте принципы SOLID: SOLID помогают создавать более гибкий код.

- Мастерство отладки: Отладчик - ваш лучший друг при поиске ошибок.

- Структуры данных и алгоритмы: Понимание их помогает решать задачи эффективнее.

- Тестирование: Пишите юнит-тесты, чтобы предотвращать ошибки.

- Избегайте магических чисел и строк: Используйте константы и перечисления.

- Асинхронное программирование: Изучите async и await для улучшения производительности.

- Следите за новостями: Будьте в курсе последних трендов в мире C# и .NET, а мы в этом поможем!

Следуя этим советам, вы сможете улучшить свои навыки и разрабатывать качественные приложения на C#.
Напиши в комментариях какую тему вы бы хотели разобрать подробно.🖥️💡
👍124🔥1
🚀 10 полезных функций для C#-программистов 🚀

Если вы разрабатываете на C# или интересуетесь этим языком программирования, вот набор полезных функций, которые облегчат вам жизнь:

Автоматические свойства (Auto Properties): Создание свойств классов стало гораздо проще.

LINQ (Language Integrated Query): Мощный способ работы с данными в C#.

Интерполяция строк (String Interpolation): Добавление переменных в строки стало более удобным.

Асинхронное программирование (Asynchronous Programming): Обработка I/O и сетевых операций без блокировки основного потока.

Методы расширения (Extension Methods): Добавление методов к существующим типам.

Обработка исключений (Exception Handling): Мощные инструменты для управления ошибками.

Атрибуты (Attributes): Добавление метаданных к коду.

Интерфейсы (Interfaces): Создание абстрактных типов и множественное наследование.

Делегаты (Delegates): Использование методов как аргументов и для событий.

Nullable типы (Nullable Types): Обработка отсутствия данных.

Какие из этих функций вы уже используете, и какие считаете наиболее полезными?
Делитесь своим мнением в нашем чате!
👍103
Что будет выведено на экран после вызова метода Swap?
Anonymous Quiz
21%
a=5 b=10
44%
a=10 b=5
35%
Ошибка компиляции
11👍4🤯3
Code Mentor: ваш личный учитель программирования

Code Mentor – это сервис, который поможет вам понять любой блок кода. Он использует искусственный интеллект, чтобы предоставить вам подробные объяснения того, что делает код и когда его следует использовать.

Code Mentor подходит для всех уровней квалификации от новичков до профессионалов. Он также может использоваться для объяснения кода детям.

Если вы застряли в коде, Code Mentor может помочь вам найти выход. Просто вставьте код в сервис, и он предоставит вам объяснение, которое поможет вам понять, что происходит.

Вот несколько примеров того, как Code Mentor может помочь вам:
– Если вы новичок в программировании, Code Mentor может помочь вам освоить основы. Он даст вам объяснение того, как работают различные синтаксические конструкции и операторы.
– Если вы застряли в задании, Code Mentor может помочь вам найти решение. Он даст вам объяснение того, как работает код, который вы пытаетесь написать.
– Если вы хотите улучшить свои навыки программирования, Code Mentor может помочь вам найти новые способы использования кода. Он даст вам объяснение того, как код можно использовать для решения различных задач.

Code Mentor – это мощный инструмент, который может помочь вам улучшить свои навыки программирования. Если вы хотите понять код, обратитесь в Code Mentor.

Наш чат.
👍135❤‍🔥1👀1
Шпаргалка по C#: ваш помощник в обучении

Шпаргалка – это краткий документ, содержащий основную информацию об определенной теме. Шпаргалки часто используются студентами для подготовки к экзаменам или тестам.

Держите одну из них!
👍23🤯32
Давно не было постов... Сейчас нам нужно определиться, каким типам постов и чему вообще отдавать предпочтение. Викторины, задачи, дайджесты, задачи, связанные с трудоустройством, полезная информация и так далее. Пожалуйста, напишите, каких изменений вы ждёте, что именно нужно изменить, и что вам больше всего нравится. Спасибо, ожидаю фидбека.

Подписаться на канал
18🤨1
Понимание Задач

Сначала давайте рассмотрим типичные задачи, с которыми вы, как опытный разработчик, столкнетесь. Это может включать в себя оптимизацию кода, решение сложных алгоритмических задач, архитектурные решения и управление проектами.

Пример: Оптимизация кода

Допустим, у вас есть следующий код:

public int SumArray(int[] array)
{
int sum = 0;
foreach (int num in array)
{
sum += num;
}
return sum;
}


Вызовите этот метод с большим массивом данных может занять много времени. Как бы вы его оптимизировали?

public int SumArray(int[] array)
{
return array.Sum();
}


Использование встроенной функции Sum может значительно ускорить выполнение кода.
12👍4😍2
Задачи для Самостоятельного Решения

Задача 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

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

[Статья на эту тему]
[Видео на эту тему]

Стоит делать вторую часть?
👍255👨‍💻1
ЧТО ДОЛЖЕН ЗНАТЬ C#/. Net РАЗРАБОТЧИК ДЛЯ ДЛЯ ТРУДОУСТРОЙСТВА. ЧАСТЬ 2

7. LINQ

Language Integrated Query (LINQ), или "язык интегрированных запросов", представляет собой удобную и мощную технологию доступа к данным в среде .NET. Основное преимущество этого языка запросов заключается в возможности применения единообразного подхода к извлечению данных из различных источников, таких как XML-документы, XML-потоки, наборы данных ADO.NET, SQL-базы данных, массивы, коллекции .NET и многие другие.

LINQ предоставляет разработчикам интуитивно понятный синтаксис запросов, что делает код более читаемым и поддерживаемым. Эта технология позволяет обрабатывать данные с использованием выражений запросов, что значительно упрощает кодирование и повышает производительность разработчика.

[Статья на эту тему]
[Видео на эту тему]

8. ASP.NET

Active S
erver 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🔥32
Что будет выведено на экран в результате выполнения данного кода?
Anonymous Quiz
47%
6
15%
10
18%
12
12%
14
8%
16
👍201
💡Идеи-фичи для кода. Часть 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, потому что сравнение по значениям полей
&----------------------------------------&

Оставьте своё впечатление о посте, стоит делать подобное, что изменить?
👍154
Задача: "Шифровальная машина времени"

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

Шифрование:

1. Принимает ввод пользователя в виде текстового сообщения.
2. Применяет уникальный алгоритм шифрования, который включает в себя комбинацию криптографических хэшей, математических операций и временных компонентов.
3. Возвращает зашифрованное сообщение.

Дешифрование:

1. Принимает зашифрованное сообщение.
2. Расшифровывает его, используя тот же уникальный алгоритм, но в обратном порядке.
3. Возвращает исходное текстовое сообщение.

Вот несколько подсказок, которые могут помочь в реализации:

1. Для уникальности шифрования используйте текущее время или дату как один из компонентов алгоритма.
2. Включите в алгоритм несколько различных криптографических хэш-функций.
3. Используйте случайные математические операции, чтобы усложнить алгоритм.
Сделайте так, чтобы каждый раз, при запуске программы, создавался новый уникальный ключ шифрования.

Отправить задание на проверку(@azusagavo)
Наш чат
👍162
Опрос: Почему следующий код не скомпилируется?
___
usi
ng 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
👍345🔥1
💬Делегаты в C#

📝Делегаты в C# представляют собой объекты, которые указывают на методы. Они позволяют передавать методы как параметры, хранить ссылки на методы и вызывать методы через эти ссылки.

📎
Допустим, у вас есть книга, которая хранит список различных советов. Каждый совет - это метод, который можно применить. А ваш делегат - это закладка в книге, указывающая на конкретный совет. Вы можете использовать эту закладку, чтобы найти нужный совет и применить его. Читать подробнее...
👍225🌭1🍌1
💬Интерполяция в C# - это метод форматирования строк, введенный в C# 6.0.

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

Используется для упрощения и улучшения читаемости кода при формировании строковых сообщений с вставкой переменных или результатов вычислений.

📝Например, в некоторых случаях гораздо удобнее вывести текст так:
C# Интерполяция:
Console.WriteLine($"Ваше имя: {name} вам {age} лет");

Чем так:
C# Без интерполяции:
Console.WriteLine("Ваше имя: " + name + " вам " + age + " лет! ");
👍254🤣3💯2🍌2