Advertisement
Guest User

Untitled

a guest
Jun 18th, 2019
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.11 KB | None | 0 0
  1. byte[] message = new byte[] { }; //some byte array
  2. ushort item1 = default(ushort);
  3. byte item2 = default(byte);
  4. var argumentArray = new object[] { item1, item2 };
  5. ConvertArray(response, ref argumentArray);
  6.  
  7. private void ConvertArray(byte[] response, ref object[] items)
  8. {
  9. int index = 0;
  10. for (int i = 0; i < items.Length; i++)
  11. {
  12. var item = items[i];
  13. var itemType = item.GetType();
  14. var itemSize = SizeOf(item.GetType());
  15.  
  16. if (itemSize == 0)
  17. {
  18. continue;
  19. }
  20. else if (itemSize == 1)
  21. {
  22. items[i] = response[index];
  23. }
  24. else
  25. {
  26. var method = typeof(BitConverter).GetMethod($"To{itemType.Name}");
  27. var returned = method.Invoke(null, new object[] { response, index });
  28. items[i] = Convert.ChangeType(returned, itemType);
  29. }
  30.  
  31. index = index + itemSize;
  32. }
  33. }
  34.  
  35. private int SizeOf(Type type)
  36. {
  37. switch (type.Name)
  38. {
  39. case nameof(UInt16):
  40. return 2;
  41.  
  42. case "Byte":
  43. return 1;
  44.  
  45. default:
  46. return 0;
  47. }
  48. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement