2016-08-21 68 views
-3

我很努力去理解如何将此Java代码转换为C#代码。任何帮助是极大的赞赏。如何将Java代码片段转换为C#

public enum Direction { 

NORTH(0), EAST(1), SOUTH(2), WEST(3); 
private static Map<Integer, Direction> map = new HashMap<Integer, Direction>(); 

static { 
    for (Direction directionEnum : Direction.values()) { 
     map.put(directionEnum.directionIndex, directionEnum); 
    } 
} 
+0

这应该不难。将此代码移植到C#时,您将需要数据结构映射。枚举也存在于C#中。您在代码片段中使用的for循环最好映射到foreach关键字,因为它不涉及任何计数器。对于HashMap,您应该使用Dictionary数据类型。 – RBT

+0

@RBT:谢谢你的回应。方向应该像这样移植enum? public enum方向{NORTH = 0,EAST = 1,...} – Juniuz

+0

是的。那是对的。 – RBT

回答

1

这是您的移植的C#代码。了解Enum.GetValues(typeof(Direction) API是唯一可能阻碍顺利移植的问题,如果您不知道的话。希望这可以帮助!

 public enum Direction 
     { 
      NORTH = 0, 
      EAST = 1, 
      SOUTH = 2, 
      WEST = 3 
     } 

     private static Dictionary<int, Direction> map = new Dictionary<int, Direction>(); 

     private static void PortJavaCodeToCSharp() 
     { 
      foreach (var directionName in Enum.GetValues(typeof(Direction))) 
      { 
       map.Add((int)directionName, (Direction)directionName); 
      }  
     } 
+0

很酷。是的,你对'Enum.GetValues(typeof(Direction))'是正确的,我以前没有用它来获取枚举类型的值。谢谢! – Juniuz