C # Sicherstellen, dass gültige Enum-Werte vorliegen - zukunftssichere Methode

Ich schreibe einen Code mit einer einfachen switch-Anweisung, die auf Enum-Werten basiert. Mir ist der Gedanke gekommen, dass ein Entwickler zu einem späteren Zeitpunkt möglicherweise einen neuen Wert hinzufügt. Daher habe ich eine Standardmethode eingefügt, um diesen zur Laufzeit zu erfassen und eine Ausnahme auszulösen. Allerdings wurde mir klar, dass ich dies jedes Mal tun sollte, wenn ich eine solche Logik einfügte, und dass ich solche Probleme nur zur Laufzeit und nicht zur Kompilierungszeit sehen würde.
Ich frage mich, ob ich Code hinzufügen kann, um den Compiler zu veranlassen, dem Entwickler mitzuteilen, dass bestimmte Methoden aktualisiert werden müssen, falls sie Aufzählungswerte aktualisieren - über das Hinzufügen von Kommentaren zur Aufzählung selbst hinaus?

z.B. (Das folgende Beispiel ist rein theoretisch. Ich habe den Status aus dem Entwicklungslebenszyklus ausgewählt, um sicherzustellen, dass er den meisten vertraut ist.)

public enum DevelopmentStatusEnum
{
    Development
    //, QA //this may be added at some point in the future (or any other status could be)
    , SIT
    , UAT
    , Production
}

    public class Example
    {
        public void ExampleMethod(DevelopmentStatusEnum status)
        {
            switch (status)
            {
                case DevelopmentStatusEnum.Development: DoSomething(); break;
                case DevelopmentStatusEnum.SIT: DoSomething(); break;
                case DevelopmentStatusEnum.UAT: DoSomething(); break;
                case DevelopmentStatusEnum.Production: DoSomething(); break;
                default: throw new StupidProgrammerException(); //I'd like the compiler to ensure that this line never runs, even if a programmer edits the values available to the enum, alerting the program to add a new case statement for the new enum value
            }
        }
        public void DoSomething() { }
    }
    public class StupidProgrammerException: InvalidOperationException { }

Dies ist ein bisschen akademisch, aber ich kann es als nützlich ansehen, um meine App robust zu machen. Hat jemand dies schon einmal versucht / hat er gute Ideen, wie dies erreicht werden könnte?

Danke im Voraus,

JB

Antworten auf die Frage(4)

Ihre Antwort auf die Frage