Public Enum myEnum As Integer
first = &H1
second = &H2
third = &H4
fourth = &H8
fifth = &H10
sixth = &H20
End Enum
これは列挙要素がこれらの値を持っている、または少なくとも比べバイナリできる値を有することが、残念ながら、neccessaryです。
私は、構築中に、第1から第4までの値を持つタイプと、第1から第6までの値を持つ第2のタイプの2つのタイプのいずれかに設定できるクラスを持っています。
Iは、列挙の1-4または1-6の要素を反復処理するためにループに使用したいが、私は発見したこと、このコード:スルー
For enumType as myEnum = myEnum.first to myEnum.fourth
Next
反復{1,2,3 、4,5,6,7,8}であり、{1,2,4,8}ではない。
これは理想的ではありません。
明らかに私はこの問題を回避することができますが、その回避策がメンテナンスプログラミングで簡単に見逃されるシナリオを見ることができます。たとえば、誰かが簡単な解決方法を勧めて、列挙型の値は後で変更する必要があります。 Enum.GetValues(Type)
これは他のものよりも答えが多いと思います。なぜなら私はVBの*まだ* yieldキーワードが不足しているからです。 – Frosty840