Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将Java代码片段转换为C#_Java_C# 4.0 - Fatal编程技术网

如何将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

我正在努力理解如何将这些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)、东(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)),我以前没有用它来获取枚举类型的值。谢谢!