Betrachten Sie den folgenden Code ein:Gibt es eine Möglichkeit, den C# -Compiler Warnungen anzeigen zu lassen, wenn eine switch-Anweisung nicht behandelte Fälle enthält?
private enum myEnum
{
A,
B
}
private void myMethod(myEnum m)
{
switch (m)
{
case myEnum.A:
//do stuff
break;
case myEnum.B:
//do stuff
break;
default:
throw new NotImplementedException(m.ToString());
}
}
Wenn ich jemals ein drittes Element C zu MyEnum hinzufügen, ich werde nur zur Laufzeit von einem zu tun haben, ich würde
Was
NotImplementedException gewarnt werden möchte, ist der Compiler warnen Sie mich, wenn es einen Schalter mit unbehandelten Fällen und kein Standard gibt: case.Gibt es eine Möglichkeit, dies zu tun, oder eine andere Lösung für dieses Problem, das ultimative Ziel ist es, zur Kompilierungszeit gewarnt zu werden, dass etwas fehlt?
, dass ein guter Punkt. Aber in meiner Situation glaube ich nicht, dass es zutrifft (es würde zu fast leeren Klassen führen, die eine Logik enthalten, die nicht in ihrer Verantwortung liegt.Normalerweise habe ich einige DataContracts, die enumerierte Member enthalten, und meine GUI schaltet diese Member ein, um zu sehen, wie sie formatiert werden.) – Brann
Ein gutes Muster, aber vorsichtig. Wenn Ihr Enum groß ist und Ihr Switch nur einige wenige Fälle bewältigen muss, möchten Sie wahrscheinlich keine Zillion-Klassen erstellen. –
+1 für die Bearbeitung. =) –