Enum to kostki i dlatego są przydzielane na stosie, a dyskryminowane związki są typami referencji, więc przydzielane są sterty. Tak więc, można by oczekiwać, że DU będzie nieco mniej wydajne, ale w rzeczywistości prawdopodobnie nigdy nie zauważysz tej różnicy.
Co ważniejsze, unia dyskryminowana może być tylko jednym z zadeklarowanych typów, gdzie jako wyliczenia są tak naprawdę tylko liczbą całkowitą, więc można rzucić liczbę całkowitą, która nie jest członkiem wyliczenia do typu wyliczeniowego. Oznacza to, że gdy wzorzec pasujący do kompilatora może potwierdzić, że dopasowywanie wzorca jest kompletne, gdy obstawiłeś wszystkie przypadki dla DU, ale dla wyliczenia zawsze musisz umieścić domyślny haczyk dla całego przypadku, np. Dla wyliczenia Zawsze będziesz potrzebował dopasowywania wzorców, takiego jak:
match enumColor with
| Red -> 1
| Green -> 2
| Blue -> 3
| _ -> failwith "not an enum member"
gdzie taki ostatni przypadek nie byłby konieczny w przypadku dalszego użytkownika.
Jedna ostatnia kwestia, ponieważ nagłówki są natywnie obsługiwane zarówno w językach C#, jak i VB.NET, ponieważ nie są takimi użytkownikami, wyliczenia często stanowią lepszy wybór podczas tworzenia publicznego interfejsu API do wykorzystania przez inne języki.