Je possède ce code:Quel est le motif C# pour effectuer une action sur une série de valeurs?
if (PsionTeklogix.Keyboard.Keyboard.GetModifierKeyState(Key.Orange) == KeyState.Lock)
PsionTeklogix.Keyboard.Keyboard.InjectKeyboardCommand(Function.Orange, 0, 0);
if (PsionTeklogix.Keyboard.Keyboard.GetModifierKeyState(Key.Blue) == KeyState.Lock)
PsionTeklogix.Keyboard.Keyboard.InjectKeyboardCommand(Function.Blue, 0, 0);
if (PsionTeklogix.Keyboard.Keyboard.GetModifierKeyState(Key.Shift) == KeyState.Lock)
PsionTeklogix.Keyboard.Keyboard.InjectKeyboardCommand(Function.Shift, 0, 0);
if (PsionTeklogix.Keyboard.Keyboard.GetModifierKeyState(Key.Control) == KeyState.Lock)
PsionTeklogix.Keyboard.Keyboard.InjectKeyboardCommand(Function.Control, 0, 0);
...
et je veux factoriser le code séparant la définition clé/fonction des actions. Key.xxx et Function.xxx ne sont pas du même type.
par exemple: en Python, je pourrais simplement faire quelque chose comme:
keys = (
(Key.Orange, Function.Orange),
(Key.Blue , Function.Blue),
(Key.Shift , Function.Shift),
...
)
psi_key = PsionTeklogix.Keyboard.Keyboard
for key, func in keys:
if psi_key.GetModifierKeyState(key) == KeyState.Lock):
psi_key.InjectKeyboardCommand(func, 0, 0)
Ce qui est "le droit chemin" à faire en C#?
@Jimmy: J'aime la façon dont vous présumez qu'il assume. Peut-être qu'il est nouveau? En tout cas, 'for' en C# ne fera pas ce qu'il demande.Il doit utiliser 'foreach'. –
Je souhaite que nous pourrions downvote commentaires parce que @Jimmy Hoffa qui n'est pas nécessaire ici. – JonH
@Jimmy: Je suis au courant de foreach, mais je cherchais un moyen non-verbeux pour construire le tableau initial. Et oui, je suis un débutant C# (désolé à ce sujet) – PabloG