2011年3月23日 星期三

Enum與FlagAttribute的應用

需求:可以讓使用者選取一般會員或創業會員,也可以同時選取一般會員與創業會員。

image

 
  1: //定義玉預設值部分
  2:         [Flags]
  3:         public enum RoleOptions
  4:         {
  5:             General = 0x01,  //0001, 一般會員
  6:             Business = 0x02, //0010, 創業會員
  7:         }
  8:         RoleOptions options = 0;
  1:         //當一般會員核取事件發生時,設定一般會員旗標
  2:         private void GeneralCheckBox_Checked(object sender, RoutedEventArgs e)
  3:         {
  4:             options |= RoleOptions.General;
  5:         }
  6:         
  7:         //當創業會員和曲事件發生時,設定創業會員旗標 
  8:         private void BusinessCheckBox_Checked(object sender, RoutedEventArgs e)
  9:         {
 10:             options |= RoleOptions.Business;
 11:         }
 12: 
 13:         //當一般會員取消核取時,移除一般會員旗標 
 14:         private void GeneralCheckBox_Unchecked(object sender, RoutedEventArgs e)
 15:         {
 16:             options ^= RoleOptions.General;
 17:         }
 18: 
 19:         //當創業會員取消核取時,移除創業會員旗標
 20:         private void BusinessCheckBox_Unchecked(object sender, RoutedEventArgs e)
 21:         {
 22:             options ^= RoleOptions.Business;
 23:         }
  1: //如果是一般會員的話,我們可以做的事
  2: 
  3: if ((options & RoleOptions.General) == RoleOptions.General)
  4: 
  5: //如果是創業會員的話,我們可以做的事
  6: 
  7: if ((options & RoleOptions.Business) == RoleOptions.Business)
參考資料

沒有留言:

張貼留言