0

私のプロジェクトマネージャーは、ソリューションからすべての「Option InferOn」ディレクティブを削除するように私に請求しました(彼の意見では、未定義のタイプがないようにするため)。

Dim enums = [Enum].GetValues(enumType) ' here I will use "As Array" 

For Each item In enums ' <================== WHAT TYPE TO USE HERE?
  Dim ienum As [Enum] = CType(item, [Enum])

  Dim name As String
  Dim caption As String

  name = ienum.GetPropertyName
  caption = ienum.GetStringValue

  myDict.Add(caption, name)
Next item
4

2 に答える 2

1

GetValuesの戻りタイプは、オブジェクトの配列です。したがって、ForEachループの「item」変数のタイプはObjectになります。

お役に立てば幸いです。

于 2013-02-12T16:21:25.157 に答える
1

MSDNによると、これは定数の配列であるため、Integerにキャストできるオブジェクトの配列になります。

FWIW同様の作業を行うコードがあります。これは、各列挙値に対して格納されている属性を取得します。そのために、GetNamesを使用してから、バッキングEnumフィールドに反映し、「DisplayName」などのメタデータのさまざまなビットを格納するカスタム属性を検索できます。次に、を使用してEnumを再構成できます[Enum].Parse()

お役に立てば幸いです。また、マネージャーが言語/開発者を信頼していないため、すべてのコードを変更しなければならないのはばかげた考えだと思います。

于 2013-02-12T16:26:17.957 に答える