switch判斷中多個case的簡單優化 (一)


在開發中做一個簡單的計算器控件,每一個數字鍵對應觸發每一個不同的Win32API命令。用到switch case的多個判斷寫法,感覺代碼這樣子寫法不太好,用字節數組下標的方法稍微修改了一下。       

               switch (btn.Content.ToString())
                {
                    case "0":
                        Win32API.AddKeyBoardINput(0x30);
                        break;
                    case "1":
                        Win32API.AddKeyBoardINput(0x31);
                        break;
                    case "2":
                        Win32API.AddKeyBoardINput(0x32);
                        break;
                    case "3":
                        Win32API.AddKeyBoardINput(0x33);
                        break;
                    case "4":
                        Win32API.AddKeyBoardINput(0x34);
                        break;
                    case "5":
                        Win32API.AddKeyBoardINput(0x35);
                        break;
                    case "6":
                        Win32API.AddKeyBoardINput(0x36);
                        break;
                    case "7":
                        Win32API.AddKeyBoardINput(0x37);
                        break;
                    case "8":
                        Win32API.AddKeyBoardINput(0x38);
                        break;
                    case "9":
                        Win32API.AddKeyBoardINput(0x39);
                        break;
                    case "X":
                        Win32API.AddKeyBoardINput(0X58);
                        break;
                }

修改為:

       byte[] array = new byte[] { 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x08 };
        private void Button_Click(object sender, RoutedEventArgs e)
        {
            if (e.Source is Button)
            {
                var btn = sender as Button;
                int num = int.Parse(btn.Content.ToString());
                Win32API.AddKeyBoardINput(array[num]);
            }
        }


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM