"ASP.NET Core 2 and Angular 5" by Valerio De Sanctis suggests that regions in C# are "pre-processor directives" and I found this list of preprocessor directives which backs that up. They all lead with number symbols/hashtags/pound signs. As best as I can tell from the link I provided, a compiler might have a second, you-go-first compiler that preprocesses the preprocessor directives in another language to make them something that the compiler can understand, but in C# there is really just one trip though one compiler and the preprocessing is faked a little bit. Perhaps the preprocessor variables just get looked at first before the rest of the code. I don't know.