[quote user="unklegwar"]c# is case sensitive. So the Byte will not work.
also, each CLR compliant language must map it's data types to an underlying CLR type. In this case c#'s "byte" maps to the clr-compliant System.Byte. You can't use just "Byte" because of the naming collision. You can either use "byte" which is the c# name, or System.Byte, which would work in ANY CLR compliant language.
No WTF here, move along.[/quote]
Perhaps I am misunderstanding the intent or direction of your post, but if it is in regard to the original post, this is completely incorrect. There is never, ever, going to be a naming collision between Byte and byte. The compiler either recognizes it, or it doesn't. Assuming you have imported System, the compiler will recognize Byte perfectly. The OP's error is a compiler issue, not a CLR problem. The issue is that you can not use the structs to redefine an enum (regardless of if you spell out the full Type name or not), but have to specify the keyword instead.
I don't think it's a WTF either, but for an entirely different reason. As to why it behaves this way, I only have the theory I mentioned.