Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- byte[] message = new byte[] { }; //some byte array
- ushort item1 = default(ushort);
- byte item2 = default(byte);
- var argumentArray = new object[] { item1, item2 };
- ConvertArray(response, ref argumentArray);
- private void ConvertArray(byte[] response, ref object[] items)
- {
- int index = 0;
- for (int i = 0; i < items.Length; i++)
- {
- var item = items[i];
- var itemType = item.GetType();
- var itemSize = SizeOf(item.GetType());
- if (itemSize == 0)
- {
- continue;
- }
- else if (itemSize == 1)
- {
- items[i] = response[index];
- }
- else
- {
- var method = typeof(BitConverter).GetMethod($"To{itemType.Name}");
- var returned = method.Invoke(null, new object[] { response, index });
- items[i] = Convert.ChangeType(returned, itemType);
- }
- index = index + itemSize;
- }
- }
- private int SizeOf(Type type)
- {
- switch (type.Name)
- {
- case nameof(UInt16):
- return 2;
- case "Byte":
- return 1;
- default:
- return 0;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement