União discriminada em C #

[Observação: esta questão tinha o título original " União de estilo C (ish) em C # ", mas, como o comentário de Jeff me informou, aparentemente essa estrutura é chamada de 'união discriminada'] Desculpe a verbosidade desta pergunta. Já existem algumas perguntas semelhantes às minhas no SO, mas...