В C# есть четыре ключевых слова, которых нет в документации. Компилятор их принимает. Одно из них собирается на любой машине, а выполняется только на Windows. На Linux та же сборка падает. Дальше — как объект меняет свой тип на ходу и что на самом деле происходит при вызове метода у пустой ссылки…
А чё, так можно было? Недокументированный C#
Это краткое изложение. Полный текст материала доступен на сайте источника.