System.Array and object[] - C#

Узнай цену своей работы

Формулировка задачи:

Из массива object[] формируется строка. В данном случае все работает. Т.е string s = "456".
Листинг программы
  1. public void GetDataString()
  2. {
  3. object[] substr;
  4. device.GetArrayData(out substr)
  5. string s = string.Join("", substr);
  6. }
  7. public bool GetArrayData(out object[] devArray)
  8. {
  9. // ArrayList buffer = {4 , 5 , 6}
  10. devArray = buffer.ToArray();
  11. buffer.Clear();
  12. }
Каким образом можно реализовать ту же функциональность изменив object[] на System.Array? Следующее решение сохраняет в строке s не значения массива, а его тип. т.е s = "System.Byte[]".
Листинг программы
  1. public void GetDataString()
  2. {
  3. System.Array substr;
  4. device.GetArrayData(out substr, typeof(byte))
  5. string s = string.Join("", substr);
  6. }
  7. public bool GetArrayData(out System.Array devArray, Type type)
  8. {
  9. devArray = buffer.ToArray(typeof(type));
  10. buffer.Clear();
  11. }

Решение задачи: «System.Array and object[]»

textual
Листинг программы
  1. public void GetDataString<T>() where T : struct
  2. {
  3.      T[] substr;
  4.      device.GetArrayData(out substr);
  5.      string s = string.Join("", substr);
  6. }
  7.  
  8. public bool GetArrayData<T>(out T[] destArray) where T : struct
  9. {
  10. //    List<int> buffer
  11.  
  12.       destArray = Array.ConvertAll<int, T>(buffer.ToArray(), a => (T)Convert.ChangeType(a, typeof(T)));
  13.       buffer.Clear();
  14. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 3.714 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы