Skip to content

fix(theory): поправить примеры кода C#, которые расходятся с компилятором - #115

Merged
fey merged 3 commits into
mainfrom
fix-csharp-code-examples
Oct 20, 2026
Merged

fey merged 3 commits into
mainfrom
fix-csharp-code-examples

Conversation

@fey

@fey fey commented Oct 20, 2026

Copy link
Copy Markdown
Contributor

Блоки csharp уроков прогнаны через компилятор .NET 10 (образ C#-практик). Исправлены примеры, где урок утверждал неверное про язык или код был перенесён из Java.

  • 150-arithmetics: 3 + 4; не компилируется (CS0201), а урок называл его программой, которая «тихо отработает». Текст и пример переписаны.
  • 260-change: ошибка компилятора записана через # error, в C# это директива препроцессора. Заменено на комментарий //.
  • 140-syntax-error: вывод компилятора приведён к текущему (три ошибки с позициями вместо |:).
  • 140-string-immutability: пропущенная ;.
  • 150-methods-chain: текст обещал разбить длинную цепочку на строки, а блок повторял однострочную. Цепочка удлинена, разбивка как у форматтера (на Code Basics уже была разбита, там без изменений).
  • 160-methods-deterministic: несуществующий Functions.RandomDouble() заменён на Random.Shared.NextDouble().
  • 190-methods-variants: вызовы IndexOf() и File.ReadAllText() получили аргументы, Java-методы GetDayOfMonth() и file.Exists() заменены на ToShortDateString() и file.Delete().
  • 220-parameters: текст ошибки сверен с компилятором (CS7036, required parameter).
  • 200-static: формат даты в выводе совпадает с комментарием в коде.

Правка внесена в обе копии: курсы Хекслета csharp_fundamentals_course, csharp_fundamentals_methods_course и hexlet-basics/exercises-csharp.

🤖 Generated with Claude Code

fey and others added 2 commits October 20, 2026 16:54
…ором

Блоки csharp прогнаны через компилятор .NET 10. Исправлены примеры,
где урок утверждал неверное или код был из Java:
- 3 + 4; не компилируется (CS0201), а урок называл его рабочей программой;
- # error вместо комментария, пропущенная точка с запятой;
- несуществующие Functions.RandomDouble(), GetDayOfMonth(), file.Exists(),
  вызовы IndexOf() и ReadAllText() без аргументов;
- тексты ошибок компилятора сверены с текущим выводом.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
В файле с инструкциями верхнего уровня они идут до объявлений типов,
иначе компилятор останавливается на CS8803. Примеры вида «класс, потом
вызов» переставлены, каждый собран компилятором .NET 10. Цитата CS0122
в уроке про static теперь совпадает с тем, что увидит студент.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@fey

fey commented Oct 20, 2026

Copy link
Copy Markdown
Contributor Author

Добавлен коммит: вызов перед объявлением класса в примерах (CS8803) в уроках условий, циклов и определения методов. Каждый блок собран компилятором .NET 10.

Фрагменты со свободными переменными и схемы конструкций помечены
check-csharp-blocks: skip, примеры ошибок компилятора помечены
expect-error. Пример CS0029 объявляет переменную сам, иначе падал на
CS0103; к примеру с void-методом добавлена цитата CS0815.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@fey

fey commented Oct 20, 2026

Copy link
Copy Markdown
Contributor Author

Добавлен коммит: пометки check-csharp-blocks: skip и expect-error для проверки примеров компилятором (bin/check-csharp-blocks.ts в ките). Пример CS0029 в 260-change объявляет переменную сам, к примеру с void-методом в 210-return добавлена цитата CS0815. С этой веткой проверка по курсу проходит без находок.

@fey
fey merged commit 188619e into main Oct 20, 2026
2 checks passed
@fey
fey deleted the fix-csharp-code-examples branch October 20, 2026 12:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant