2 Stimmen

Verwendung von Eigenschaften in Switch-Anweisungen?

Ich habe eine Switch-Anweisung in einer Klasse, die Befehlsobjekte erzeugt, je nachdem, ob eine bestimmte Zeile in einer Codedatei dem speziellen Code für dieses Befehlsobjekt entspricht.

wie diese:

switch (line):
{
   case "#CODE1":
      return new Command1();
   case "#CODE2":
      return new Command2();
}

Ich möchte es in etwas wie dieses verwandeln:

switch (line):
{
   case Command1.Code:
      return new Command1();
   case Command2.Code:
      return new Command2();
}

Ich habe es versucht, indem ich eine öffentliche statische Eigenschaft von Command1 erstellt habe, aber der Compiler beschwert sich...

Gibt es eine Möglichkeit, etwas in dieser Richtung zu tun, die der Compiler nicht beanstanden wird?

0voto

Ben Lesh Punkte 106494

Wenn Sie die Eigenschaften einer Klasse überprüfen wollen. Ich gehe davon aus, dass Sie wahrscheinlich in der Lage sein wollen, diese Eigenschaften zu ändern und entsprechend zu prüfen. Sie müssen eine Anweisung vom Typ if, else if, else if verwenden.

Wenn Sie eine Switch-Anweisung verwenden möchten, sind Sie aufgeschmissen, es sei denn, Sie prüfen einen ganzzahligen Typ gegen konstante Werte. if, else if, else if-Blöcke sind hässlich, aber sie tun das, wonach Sie suchen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X