none
Enum 放在模組裡與模組外的差別 RRS feed

  • 問題

  • 如題
    Enum 放在模組裡與模組外的差別

    方法一

    Module Mod_ErrMsg

      Public Enum gEum_UiErr As Integer
          ABC=0
          CDE=1
      End Enum

    End Module

    方法二

    Module Mod_ErrMsg

    End Module

     Public Enum gEum_UiErr As Integer
         ABC=0
         CDE=1
     End Enum

    小弟想宣告一個全域的ENUM

    本來都用方式一,都沒問題
    但有一天在函式中想帶參數
    Sub(Byval Code as gEum_UiErr) 卻出現錯誤 "無法透過Class在專案公開型別使用ENUM"
    後來把ENUM從模組中拿出來就能用了

    想問說兩者差別在哪

    2014年7月4日 上午 12:59

解答

  • 宣告在Module中是屬於Module的一部分, 而宣告在Module外面則變數可以獨立使用的型態
    2014年7月4日 上午 07:15
  • 建議使用靜態類別 (VB: Shared Class) 來放,模組雖帶有全域的概念,但它並不是物件導向下的產物...

    強力監督SQL Injection問題!!

      • 小朱的技術隨手寫:http://www.dotblogs.com.tw/regionbbs/
      • 雲端學堂Facebook: http://www.facebook.com/studyazure

    2014年7月4日 上午 10:15
    版主
  • 用地址來比喻的話, 同樣是 "市"

    有 直轄市, 省轄市, 縣轄市.

    Enum 型別可以放在命名空間的第一層, 也可以放在類別內部巢狀.

    所以樓主應該要弄清楚的是, 命名空間, 類別 (Viusal Basic 還多了個模組) 有甚麼不一樣, 作用是甚麼.

    請參考以下 MSDN 文件的內容.

    Visual Basic 語言參考


    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。

    2014年7月8日 下午 01:55
    版主

所有回覆

  • 宣告在Module中是屬於Module的一部分, 而宣告在Module外面則變數可以獨立使用的型態
    2014年7月4日 上午 07:15
  • 建議使用靜態類別 (VB: Shared Class) 來放,模組雖帶有全域的概念,但它並不是物件導向下的產物...

    強力監督SQL Injection問題!!

      • 小朱的技術隨手寫:http://www.dotblogs.com.tw/regionbbs/
      • 雲端學堂Facebook: http://www.facebook.com/studyazure

    2014年7月4日 上午 10:15
    版主
  • 用地址來比喻的話, 同樣是 "市"

    有 直轄市, 省轄市, 縣轄市.

    Enum 型別可以放在命名空間的第一層, 也可以放在類別內部巢狀.

    所以樓主應該要弄清楚的是, 命名空間, 類別 (Viusal Basic 還多了個模組) 有甚麼不一樣, 作用是甚麼.

    請參考以下 MSDN 文件的內容.

    Visual Basic 語言參考


    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。

    2014年7月8日 下午 01:55
    版主