關於 點部落 團隊
我們是一群普通的程式設計人員,在各自不同的領域發展, 由於對 IT 知識社群發展有一股的熱誠,所以我們一起創造了這個平台, 我們希望透過 點部落平台 能夠創造出更好的 IT 知識技術分享環境。 歡迎您參與點部落,也請給我們意見與指教,讓我們能夠持續的改善, 營造出更好的環境及平台。tw.dotblogs@gmail.com

常用連結

最新回應

在上一篇文章 [讀書心得]深入淺出物件導向分析與設計-良好程式設計基石 OOAD Code設計範例介紹-1 中提到的,
所說到的範例,
像是書中提到的 wood 所使用的 enum 下還有能夠加上程式
讓我蠻驚訝的,該書提到的範例程式碼如下

public enum Wood { 

  INDIAN_ROSEWOOD, BRAZILIAN_ROSEWOOD, MAHOGANY, MAPLE,
  COCOBOLO, CEDAR, ADIRONDACK, ALDER, SITKA;

  public String toString() {
    switch(this) {
      case INDIAN_ROSEWOOD:    return "Indian Rosewood";
      case BRAZILIAN_ROSEWOOD: return "Brazilian Rosewood";
      case MAHOGANY:           return "Mahogany";
      case MAPLE:              return "Maple";
      case COCOBOLO:           return "Cocobolo";
      case CEDAR:              return "Cedar";
      case ADIRONDACK:         return "Adirondack";
      case ALDER:              return "Alder";
      case SITKA:              return "Sitka";
      default:  return "unspecified";
    }
  }
}

可以在 enum 內,再加上方法等...
這樣的話就能夠變成enum的選項是簡寫,而執行 toString 的時候就是比較完整的名稱之類的,
當然這段code,貼到我目前使用的 VS2005 (.NET 2.0) 一定是無法執行的,
而目前在C#若要這樣做的話,一般而言都可能是類似數字的方式
範例取用 MSDN 詳細範例說明網址
enum Days {Sat=1, Sun, Mon, Tue, Wed, Thu, Fri};

而再看到 Java 這邊的 enum 能夠做到這樣,真的讓我蠻驚訝的,
後來就上網找一找,發現了這篇文章 Jon Skeet: Coding Blog  Enhanced enums in C# 這位MVP所寫的這篇,
大概從該文章中瞭解(Dotjum沒詳細看完,若有錯誤請糾正),
目前C#是沒有支援,但在Java1.5版本已經能夠支援這項功能。
在enum在包含方法,而能更做到的就會像是他文章中程式碼中,能夠在 enum 中加上方法,
還蠻希望C#也能夠提供這樣的方法。


 

回應

目前沒有回應.

*標 題:

*姓 名:

 電子郵件: (將不會被顯示)

 個人網頁:

*回應

登入後使用進階評論

Please add 8 and 1 and type the answer here: