Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/274.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/1/amazon-web-services/13.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
C# 这个C代码的java等价代码是什么?_C#_Java - Fatal编程技术网

C# 这个C代码的java等价代码是什么?

C# 这个C代码的java等价代码是什么?,c#,java,C#,Java,我不知道如何在java中实现这个C#代码?Dev是具有此代码的类 public enum ConfigSetupByte0Bitmap { Config5VReg = 0x80, ConfigPMux = 0x40, } public void SetVReg(bool val) { //vReg = val; if (val) { configSe

我不知道如何在java中实现这个C#代码?Dev是具有此代码的类

    public enum ConfigSetupByte0Bitmap
    {
        Config5VReg = 0x80,
        ConfigPMux  = 0x40, 
    }

   public void SetVReg(bool val)
    {
        //vReg = val;
        if (val)
        {
            configSetupByte0 |= (int)Dev.ConfigSetupByte0Bitmap.Config5VReg;
        }
        else
        {
            configSetupByte0 &= ~(int)Dev.ConfigSetupByte0Bitmap.Config5VReg;   
        }
    }
我不是一个C#专家,但我认为这是功能等效的:

public void SetVReg(bool val) {
    if (val) {
        configSetupByte0 |= 0x80;
    } else {
        configSetupByte0 &= ~0x80;   
    }
}
剩下的只是糖


但在SetVReg方法中,它表示不能将ConfigSetupByte0Bitmap.Config5VReg强制转换为int

对。在Java中,枚举是对象类型,不能转换为整数。如果希望Java枚举具有整数“值”,则需要执行以下操作:

    public enum Foo {
        ONE(1), THREE(3);
        public final value;
        Foo(int value) {
            this.value = value;
        }
    }

    // ...
    System.out.println("THREE is " + THREE.value);

我创建了enum,以使用构造函数来适应上面的enum。但是在SetVReg方法中,它表示不能将ConfigSetupByte0Bitmap.Config5VReg强制转换为int。谢谢,如果(Enum.IsDefined(typeof(AdcChannels),channel)){..,您能告诉我可能的转换方法吗
public enum ConfigSetupByte0Bitmap
{
    Config5VReg(0x80),
    ConfigPMux(0x40); 

    public final int value;

    private ConfigSetupByte0Bitmap(final int value)
    {
        this.value = value;
    }
}

public void SetVReg(boolean val)
{
    //vReg = val;
    if (val)
    {
        configSetupByte0 |= ConfigSetupByte0Bitmap.Config5VReg.value;
    }
    else
    {
        configSetupByte0 &= ~ConfigSetupByte0Bitmap.Config5VReg.value;   
    }
}