In meinem Code möchte ich mit Textnamen der Elemente arbeiten, die als ein Symbol in Paketen codiert sind.Wie benutzt man den Schalter mit Wörterbuchwerten?
In einer üblichen Situation würde 1012
für mich cat, dog, cat, frog
bedeuten, aber es gibt viele weitere Paare wie diese, so dass es schwer ist, sich an alle zu erinnern. Manchmal müssen sie geändert werden, also dachte ich, ich sollte einen Dictionary<string, int>
für diesen Zweck verwenden. Aber dann ...
switch (symbol)
{
case "0": { /* ... */ }
case "1": { /* ... */ }
case "2": { /* ... */ }
case "n": { /* ... */ }
}
... wird ...
switch (symbol)
{
case kvpDic["cat"]: { /* ... */ }
case kvpDic["dog"]: { /* ... */ }
case kvpDic["frog"]: { /* ... */ }
case kvpDic["something else"]: { /* ... */ }
}
und das Studio sagt, ich brauche Konstanten für meinen Schalter zu verwenden.
Wie kann ich es funktionieren lassen?
Upd: Anzahl solcher Tiere und deren Wertepaare sind nur zur Laufzeit bekannt ist, so muss der Code nicht Konstanten verwenden (glaube ich).
Was machst du in den Schaltblöcken? Grundsätzlich * können * Sie nicht-konstante Werte nicht einschalten, also müssen Sie an * einige * Alternativen denken. Es gibt verschiedene Möglichkeiten, aber wir brauchen mehr Informationen. –
Haben Sie daran gedacht, stattdessen eine 'enum' zu verwenden? Oder ändern sich die Werte zur Laufzeit? –
Ich ordne Texture2D einem neuen Sprite zu und sie sind einzigartig für jede Situation. – user1306322