मैं इस कोड है:मूल्यों की एक श्रृंखला पर कार्रवाई करने के लिए सी # पैटर्न क्या है?
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);
...
और मैं कोड कार्यों से कुंजी/समारोह परिभाषा अलग refactor करना चाहते हैं। Key.xxx और Function.xxx एक ही प्रकार से नहीं हैं।
जैसे: अजगर में, मैं बस की तरह कुछ कर सकता है:
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)
"सही तरीके से" सी # में करने के लिए क्या है?
@ जिमी: मुझे लगता है कि आप मानते हैं कि वह कैसा मान रहा है। शायद वह नया है? किसी भी मामले में, सी # में 'के लिए' वह नहीं करेगा जो वह पूछ रहा है।उसे 'foreach' का उपयोग करने की जरूरत है। –
मेरी इच्छा है कि हम टिप्पणियों को कम कर सकें क्योंकि @ जिमी होफा जिसकी आवश्यकता नहीं है। – JonH
@ जिमी: मुझे foreach के बारे में पता है, लेकिन मैं प्रारंभिक सरणी बनाने के लिए एक गैर verbose रास्ता तलाश रहा था। और हाँ, मैं एक सी # नौसिखिया हूं (इसके बारे में क्षमा करें) – PabloG