I have a function that receives some data I have to respond with a HEX value.
public byte[] GetData(string value) 
{
   byte[] returnVal = null;
    switch(value){
       case "demo1":
            byte byte1 = (byte)((32769 & 0x000000FF));
            byte byte2 = (byte)((32769 & 0x0000FF00) >> 8);
            returnVal  = new byte[] { byte1, byte2 };
            break;
       .....
    }
    return returnVal;
}
In this example I have to response with 0x8001
I create the following code to build manually a 2 byte array with the right response.
  byte byte1 = (byte)((32769 & 0x000000FF));
  byte byte2 = (byte)((32769 & 0x0000FF00) >> 8);
  var resCmd = new byte[] { byte1, byte2 };
The response can be different depending on the value I received so I want to have a ENUM with the responses and then convert that to byte array.
For example:
public enum Commands
{
    CMD1 = 0x8001,
    CMD2 = 0x8002,
    CMD3 = 0x8003
};
How can I convert an Enum for example
CMD1to the 2 byte array that I need?
Thanks
Use BitConverter after casting it to a 16 bit unsigned int:
    var bytes = BitConverter.GetBytes((UInt16)Commands.CMD1);
 Ian Mercer
 Ian MercerUser contributions licensed under CC BY-SA 3.0