Estou tentando fazer algo como o seguinte: enum E; void Foo(E e); enum E {A, B, C}; que o compilador rejeita. Eu dei uma olhada rápida no Google e o consenso parece ser "você não pode fazer isso", mas não consigo entender o porquê. Alguém pode explicar? Esclarecimento 2: Estou fazendo isso...