在開發中做一個簡單的計算器控件,每一個數字鍵對應觸發每一個不同的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]);
}
}
