2009-02-01

Enum的小技巧

曾在瓶水相逢.Net的Blog中看到這篇文章
Enum 的設計與應用 - 簡易權限設計
當時看到這篇就對這篇印象很深
第一次看到Enum也可以這樣使用

今天一早,原本正看著Essential C# 3.0這本書時
又突然看到[FlagsAttribute]
上網查一下MSDN,又讓我想起那篇文章
因為之前時間不夠,並未實際測試
趁今天比較空閒時,寫了一個小程式來測試一下

[FlagsAttribute]
private enum UserPriority
{
  None = 0,
  Read = 1,
  Write = 2,
  Delete = 4
};
private void button1_Click(object sender, EventArgs e)
{
  richTextBox1.Text = string.Empty;
  StringBuilder sb = new StringBuilder();
 
  for (int i = 0; i < 8; i++)
  {
    sb.AppendFormat(@"UserPriority{0}: {1}",i, ((UserPriority)i).ToString());
    sb.AppendLine();                
  }
  richTextBox1.Text = sb.ToString();
}

測試結果如下所示:
 image
果然,印證了MSDN上的結果
Enum也可以使用AND、OR、XOR的運算
雖然有點多此一舉
(MSDN上已經詳細說明了,但還是想實際測試看看加深印象)

沒有留言:

張貼留言