PowerShell — известный инструмент автоматизации от Microsoft. Но какие секреты сможет найти статический анализатор в его исходном коде? 🤔
Посмотрим в этой статье🔗
#csharp #статья
Посмотрим в этой статье
#csharp #статья
Please open Telegram to view this post
VIEW IN TELEGRAM
В этой статье мы заглянем в его историю: рассмотрим ключевые изменения от версии к версии и различные инструменты, без которых C# трудно представить.
Переходите по ссылке
#статья #csharp
Please open Telegram to view this post
VIEW IN TELEGRAM
Добро пожаловать на седьмой выпуск нашего дайджеста, посвящённого новостям и событиям в мире .NET! В этот раз мы расскажем про .NET 10 preview 2 и 3, новый релиз Mono, множество интересных статей и, конечно же, AI. Команда PVS-Studio рада представить вам подборку самых интересных и полезных материалов.
Переходите по ссылке
#csharp #статья
Please open Telegram to view this post
VIEW IN TELEGRAM
Друзья, рады предоставить вам подборку Telegram-каналов про разработку. Вас ждут каналы про языки C++, C# и Java 👍
Если хотите прокачать скиллы или просто читать годный контент — загляните в статью!
#статья #cpp #csharp #java
Если хотите прокачать скиллы или просто читать годный контент — загляните в статью!
#статья #cpp #csharp #java
Please open Telegram to view this post
VIEW IN TELEGRAM
Хабр
Подборка авторских Telegram-каналов про разработку
Приветствую, Хабр. На связи агент того самого анализатора, и сегодня я предлагаю вам изучить Telegram-каналы крутых айтишников, которые познали себя не только в коде, но и блогинге. Надеюсь, они...
В эпоху монолитных UI-фреймворков существовала легенда о земле, где один код правил всеми платформами. Сегодня мы ступаем на берега этого забытого материка зовущегося Avalonia.
Переходите по ссылке🔗
#статья #csharp
Переходите по ссылке
#статья #csharp
Please open Telegram to view this post
VIEW IN TELEGRAM
Добро пожаловать на восьмой выпуск нашего дайджеста, посвящённого новостям и событиям в мире .NET! В этот раз мы расскажем про уже ожидаемые .NET 10 preview 4 и 5, новую команду dotnet run app.cs и множество интересных статей.
Переходите по ссылке🔗
#статья #csharp
Переходите по ссылке
#статья #csharp
Please open Telegram to view this post
VIEW IN TELEGRAM
Каждый, кто хотя бы раз запускал Visual Studio, имел дело с файлом формата .sln. Это файл решения, который содержит информацию о структуре, конфигурации сборки, настройках платформы и других параметров.
Но зачем спустя столько лет вводить новый формат .slnx и чем они друг от друга отличаются?
Разберёмся в этой статье🔗
#статья #csharp
Но зачем спустя столько лет вводить новый формат .slnx и чем они друг от друга отличаются?
Разберёмся в этой статье
#статья #csharp
Please open Telegram to view this post
VIEW IN TELEGRAM
Что нужно для взаимодействия с операционной системой исключительно через клавиатуру? Это вопрос, на который каждый разработчик даст свой ответ, и как на него ответили Microsoft, выпустив Windows Terminal?
Усаживайтесь поудобнее перед монитором с вашим любимым виртуальным терминалом (а вдруг вы из текстового браузера эту статью будете читать?), PVS-Studio выходит на сцену.
#статья #cpp #csharp
Усаживайтесь поудобнее перед монитором с вашим любимым виртуальным терминалом (а вдруг вы из текстового браузера эту статью будете читать?), PVS-Studio выходит на сцену.
#статья #cpp #csharp
В наше время многие интересуются биржами, акциями, облигациями, а некоторые даже имеют свои портфели (речь не про школьников). Существует множество технологий и инструментов для автоматизации торговли. А теперь представьте, к каким убыткам могут привести ошибки в исходном коде такого программного обеспечения.
Поэтому давайте посмотрим на потенциальные ошибки в популярном торговом движке Lean 📈
#cтатья #csharp
Поэтому давайте посмотрим на потенциальные ошибки в популярном торговом движке Lean 📈
#cтатья #csharp
Но перед тем, как мы расскажем про нее - предлагаем вам попробовать угадать её суть по ошибке в коде:
public void ProcessStream(Stream strm){
....
byte[] bytes = new byte[strm.Length + 10]
int numBytesRead = 0;
try {
int numRead = strm.Read
(bytes, numBytesRead, 1);
if (numRead == -1) {
throw new InvalidHeaderException
("Failed to read long name entry");
....
}
}
catch (InvalidHeaderException ex) {....}
}
Уже нашли ошибку? Она не самая очевидная!
Дело в том, что некоторые методы возвращают значение, обозначающее успешность его выполнения (например, -1, 1 или 0).
В данном примере, разработчик ожидал, что метод Read может вернуть -1 и обрабатывает этот случай в блоке catch, но эта ситуация невозможна.
Проблема в том, что метод Read не сможет вернуть -1 (минимальное возможное значение для него 0). В итоге, ситуация, которую хотел избежать разработчик - не вызовет исключение, что может нарушить работу программы.
Анализатор же без проблем находит такую проблему и подсвечивает её прямо в коде:
`Предупреждение PVS-Studio: V3225. The 'Read' method returns the number of bytes that were read and cannot return the value of -1.`
Если вам понравилась эта диагностика – обязательно ознакомьтесь с остальными в новом пресс-релизе для версии PVS-Studio 7.38.
#csharp #PVS_Studio
Please open Telegram to view this post
VIEW IN TELEGRAM