📖 Язык программирования C# 6.0 и платформа .NET 4.6
⬇️ Скачать книгу
➡️ C# Ready | #книга
В этой книге рассматриваются ключевые аспекты языка C# 6.0 и платформы .NET 4.6, акцентируя внимание на новых возможностях и улучшениях, которые делают разработку более эффективной и удобной
Автор: Эндрю Т. Филипп Д.
Год: 2017
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5👍4
Рассмотрим некоторые варианты оптимизации кода с помощью сегмента памяти, в списках и массивах:
1. Использование сегмента памяти для работы с массивами —
Span<T>
позволяет эффективно работать с сегментами массивов или строк без выделения дополнительной памяти:int[] arr = { 1, 2, 3, 4, 5 };
Span<int> span = arr.AsSpan().Slice(1, 3); // [2, 3, 4]
Console.WriteLine(span.ToArray()); // вывод: 2 3 4
2. Использование списка для уменьшения перераспределений — Если заранее известно, сколько элементов будет в списке, можно установить емкость списка, чтобы избежать лишних перераспределений памяти:
List<int> list = new List<int>(1000); // заранее выделяем память
list.Add(1);
Console.WriteLine(list.Capacity); // вывод: 1000
3. Использование словаря для поиска по ключу — Вместо использования линейного поиска в списке, использование
Dictionary
обеспечивает быстрый доступ к данным по ключу за время O(1):Dictionary<string, int> dict = new Dictionary<string, int>
{
{ "apple", 1 },
{ "banana", 2 },
{ "cherry", 3 }
};
Console.WriteLine(dict["banana"]); // вывод: 2
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13🔥5🤝3
В этом посте рассмотрим некоторые варианты работы с модулем System.Linq в С#, которые позволяют нам обрабатывать данные под наши нужды
- Фильтрация данных с помощью Where
- Сортировка OrderBy
- Использование Select
🔥 — если узнал новое
🤝 — если уже пользовался
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥33🤝14👍5
This media is not supported in your browser
VIEW IN TELEGRAM
Microsoft Learn — Официальная платформа от крупной корпорации, здесь собрано множество крутых курсов, которые помогут тебе углубиться в своей сфере
📌 Ссылочка: learn.microsoft.com
➡️ C# Ready | #ресурс
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15🔥5🤝2
1. Использование коллекции `List<T>` вместо массива для динамического добавления элементов — Использование
List<T>
позволяет добавлять элементы без необходимости заранее определять размер коллекции:List<int> numbers = new List<int> { 1, 2, 3 };
numbers.Add(4);
Console.WriteLine(string.Join(", ", numbers));
// вывод: 1, 2, 3, 4
2. Использование `LINQ` для фильтрации коллекций — С помощью LINQ можно легко фильтровать элементы коллекции, сокращая код:
List<int> numbers = new List<int> { 1, 2, 3, 4, 5 };
var evenNumbers = numbers.Where(n => n % 2 == 0).ToList();
Console.WriteLine(string.Join(", ", evenNumbers)); // вывод: 2, 4
3. Использование `Dictionary<TKey, TValue>` для поиска значений по ключу: —
Dictionary
позволяет быстро искать элементы по ключу за время O(1), что делает код эффективным:var dictionary = new Dictionary<string, int> { { "apple", 1 }, { "banana", 2 } };
Console.WriteLine(dictionary["apple"]);
// вывод: 1
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥23👍7🤝5
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥22🤝10👍3
C# предоставляет простой и элегантный способ работы с ресурсами, которые требуют явного освобождения, через интерфейс IDisposable и конструкцию using. Хотя многим разработчикам это кажется базовым знанием, на практике часто можно увидеть ошибки или неочевидные моменты.
Представьте ситуацию, вы работаете с подключением к базе данных или файловым потоком. Обычный способ открытия файла может выглядеть так:
FileStream fileStream = new FileStream("example.txt", FileMode.Open);
// Работа с файлом
fileStream.Close();
Проблема здесь в том, что если произойдет исключение перед вызовом
Close()
, файл останется незакрытым, и это приведет к утечке ресурсов.Использование using для автоматического освобождения
Конструкция
using
автоматически вызывает метод Dispose()
при выходе из блока, даже в случае исключения:using (FileStream fileStream = new FileStream("example.txt", FileMode.Open))
{
// Работа с файлом
}
// fileStream автоматически освобождается здесь
Работа IDisposable
Когда вы создаете собственные классы, которые используют управляемые или неуправляемые ресурсы, реализация интерфейса
IDisposable
гарантирует, что ресурсы будут корректно освобождены:public class ResourceHandler : IDisposable
{
private bool disposed = false;
public void Dispose()
{
if (!disposed)
{
// Освобождение ресурсов
disposed = true;
}
}
}
Жми 🔥 если понравился пост
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥25👍7🤝3
This media is not supported in your browser
VIEW IN TELEGRAM
Uno Platform предоставляет свой фреймворк и туториалы, является отличным выбором для разработчиков, стремящихся создать кроссплатформенные приложения с минимальными затратами времени и ресурсов.
📌 Ссылочка: https://platform.uno
➡️ C# Ready | #ресурс
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥5
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥17👍7🤝3