如何将Java代码片段转换为C#
我正在努力理解如何将这些Java代码转换成C#代码。非常感谢您的帮助如何将Java代码片段转换为C#,java,c#-4.0,Java,C# 4.0,我正在努力理解如何将这些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.value
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)、东(1)、南(2)、西(3);
private static Map=new HashMap();
静止的{
对于(Direction directionnum:Direction.values()){
map.put(directionnum.directionIndex,directionnum);
}
}
这是您移植的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,
东=1,
南=2,
西=3
}
私有静态字典映射=新字典();
私有静态void portjavacodetocharp()
{
foreach(Enum.GetValues中的var directionName(typeof(Direction)))
{
添加((int)directionName,(Direction)directionName);
}
}
这应该不难。将此代码移植到C#时需要数据结构映射。enum也存在于C#as is中。您在代码段中使用的for循环最好映射到foreach关键字,因为它不涉及任何计数器。对于HashMap,您应该使用Dictionary数据类型。@RBT:谢谢您的回答。是否应该指示枚举的移植方式如下?公共枚举方向{NORTH=0,EAST=1,…}是的。这是正确的。顺便说一句,您插入到地图中的directionIndex-是枚举的对应整数值吗?与NORTH类似,它是0?是的,directionIndex是枚举类型Cool的对应整数值。是的,您对“enum.GetValues(typeof(Direction)),我以前没有用它来获取枚举类型的值。谢谢!