Итераторы и yield в C#

Пока вирусы и синяки гуляют по улице, расскажу вам про итераторы и не менее страшную вещь как yield. Достаточно непонятная и нечасто используемая тема у начинающих дотнет разработчиков. Итераторами можно отстрелить себе ногу, при этом, не поняв, что вообще происходит в округе. Го сюда
Статья
5 3.6K
В сравнении двух чисел мы обычно используем оператор " if ", который при истинности (по сути единица) выражения запускает код, который находится внутри, а при ложном пропускает этот код. Вроде всё просто сравнение, но как компьютер понимает что два числа равны или больше, или меньше и как работает этот оператор "…
Вопрос
3 1.7K
19
Также прочитай про условные и безусловные переходы: jmp, ja, jb, je, jnz/jne и т.д.
28
Обычный goto. Если флаг 1, то goto в такой лейбл, если 0, то в другой. В ассемблере MIPS есть специальные функции сравнения.
38
Принятый ответ
Почитай про boolean и как работают его операции. Он не связан с числовыми типами (кроме Си, но не будем трогать магию слабой типизации), советую почитать про типизацию и приведение типов в C++. Дальше можно переходить к тому, что такое int32/64, а дальше ieee float

Крайне не рекомендую объединять логические и численные операции - разбираться в этом потом очень больно, даже самому себе через пару месяцев
Сразу предупрежу - я только начал изучать С и не нужно помидоры кидать в меня.
имеем к примеру -
std::string WantBuyApples = u8"я хочу купить %s яблок";
вот вопрос в этом - как перекрасить каждое отдельное слово (не важно в какой цвет и т.д.) и вообще реально ли это? Или все делается в самом printf?
Вопрос
2 1.2K
15
Прежде всего запомни, что всё в C и C++ это цифры, байты и биты, ничего более. Всё состоит из фундаментальных типов. Стандартные библиотеки, позволяющие использовать строки, контейнеры и прочие ништяки не умеют работать с графикой и не предназначены для работы с ней, это просто данные, в свою очередь тоже основанные на числовых фундаментальных типах. Так и строка std::string это просто контейнер для динамического массива char'ов, которые являются по сути числами размером в один байт. Числа не знают какого они цвета, формы, шрифта, они просто хранят в себе информацию, в данном случае текст. Окрасить текст в цвета можно в зависимости от того где ты этот текст выводишь. Консоль на винде в такое не умеет, а если умеет то косо и криво, и вообще с этим играться бесполезно. Консоль на линуксе умеет в цвета, там для этого есть escape-последовательности которые ставятся перед текстом, подобно цветовым кодам в варкрафте. Играйся с winapi или лучше Qt, в последнем вообще в html отображаемый текст форматировать можно.
24
Строки сами по себе не имеют ничего общего с визуальным форматированием - это делается на этапе вывода.

Работа с небезопасным кодом в C#

Язык C# поддерживает указатели, однако несколько ограниченно. Ограниченность заключается в том, что применение указателей не поощряют, поскольку справедливо считается, что это может повлиять на надежность как кода, так и среды выполнения в целом.
Указатель - это переменная, содержащая в себе адрес памяти, в которой…
Статья
16 9.5K
29
Msey:
Самый частый случай, который встречался мне на практике - это более шустрые операции с массивами и строками за счет отсутствия проверки их границ.
оптимизация работы с большими массивами данных, когда надо тоскать между функциями все эти данные и манипулировать небольшими участками массива без выделения в небольшой кусочек.
Но с недавних пор это все не актуально стало. В новом стандарте есть новые структуры данных, которые оборачивают такие небезопасные операции и непосредственное использование unsafe становится ненужным

Атрибуты в C#

Атрибутами в C# являются классы, содержащие в себе некоторую метаинформацию, встраиваемую в сборку приложения.
Атрибуты могут применяться ко всем типам в C#, включая даже другие атрибуты, поля, методы, свойства и перечисления. Основу атрибутов составляет класс System.Attribute, от которого все предполагаемые классы…
Статья
2 3.4K