0

私のモデルでは、次のような列挙型があります。

public enum m_ItemType
{
    Unknown = 0,
    //
    Physical = 1,
    //
    Logical = 2,
}

そして、この列挙値を持つアイテムの別のリストに基づいてアイテムのリストを作成するこのメソッドがあります:

private static List<ItemType> BuildListItem(IEnumerable<ItemToSend> listItemToSend)
{
     List<ItemType> listItemsToReturn = new List<ItemType>();

     foreach (var item in listItemToSend)
     {
          ItemType itemToAdd = new ItemType();

          itemToAdd.Title = item.m_Title;
          itemToAdd.Description = item.m_Description;

          switch (item.m_ItemType)
          {
              case 0:
                 itemToAdd.Type = AnotherEnumValue.Unknown;
                 break;
              case 1:
                 itemToAdd.Type = AnotherEnumValue.Physical;
                 break;
              case 2:
                 itemToAdd.Type = AnotherEnumValue.Logical;
                 break;
          }    

          listItemsToReturn.Add(itemToAdd);
     }

     return listItemsToReturn;
}

しかし、コードはコンパイルされず、この時点で列挙名が無効であると通知され続けます。誰かが私に理由を説明できますか? 理解できません。

4

2 に答える 2

1

最初の例では、列挙型の名前は ですm_ItemTypeが、むしろAnotherEnumValue.

したがって、行switch (item.m_ItemType)のドットの後の値は、フィールドではなく型名として解釈されます。

于 2013-03-20T14:27:03.750 に答える