将字节数组转换为字符串

时间:2018-05-15 20:03:15

标签: c xml

我想找到一个优雅的解决方案来解决我的问题。 我想在String ex中定义的类型值中进行动态字节转换。 “Int32”,“Byte”,“UInt16”派生自xml文件。

这是一个例子。是否可以自动转换以删除Switch Case?

    public static void Main(string[] args)
    {
        byte[] data = {77,4}; // (256 * 4) + 77 --> 1101
        object value = ToType(data, "Unt16");
        Console.WriteLine(value);
    }

    unsafe public static dynamic ToType(byte[] data, String typeStr)
    {
        fixed (byte* p = &data[0])
        {
            switch(typeStr)
            {
                case "Int16":
                    return *((Int16*)p);
                case "Unt16":
                    return *((UInt16*)p);
                case "Int32":
                    return *((Int32*)p);
                case "... ...":

                    ....
                default:
                    return null;
            }
        }
    }

0 个答案:

没有答案