TGViewer
Хабр Хабр @habr_com · 133K subscribers
Post #69525 16.8K
А чё, так можно было? Недокументированный C#

В C# есть четыре ключевых слова, которых нет в документации, но компилятор их спокойно принимает. Одно из них объявляет метод с переменным числом аргументов без всяких массивов. Собирается такой код без единого предупреждения, отрабатывает на Windows и честно выводит переданные значения.

Ту же самую сборку переносят на Ubuntu — и вместо результата прилетает InvalidProgramException с сообщением, что соглашение вызова не поддерживается. Байты те же, машина архитектурно та же, x64, а поведение разное, и падает при этом не сам метод, а код, который его вызывает.

Разберёмся, почему одна проверка в джите решает судьбу всей сборки.
  • ❤ 18
  • 👏 13
  • 🤯 7
  • 🥰 6
  • 😁 6
  • 🤡 5
  • 🤮 3
  • 🙏 3
  • 🤣 3
  • 🤪 3
  • 😢 1
More from @habr_com
  1. Sep 20, 2026Переделка радиоприемника «Электроника 26-01» Советских бытовых приёмников с синтезатором ч…
  2. Sep 20, 2026На чём советские гики учились программировать? Часть вторая В 1984 году аспирантам химфака…
  3. Sep 20, 2026И снова о том, из чего состоит протон Из школьной картинки протон это три кварка, и на низ…
  4. Sep 19, 2026Грязные игры Команда бывших нефтяников решила оставить след в индустрии и собрала топ-даун…
  5. Sep 19, 2026[ХАБРААРХИВ] «Оставайтесь голодными, оставайтесь безрассудными»: анализ речи Стива Джобса…
  6. Sep 19, 2026Есть советы, которые помогают строить карьеру. А есть советы, после которых помогает тольк…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →