System.Array and object[] - C#

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

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

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

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

textual
Листинг программы
public void GetDataString<T>() where T : struct
{
     T[] substr;
     device.GetArrayData(out substr);
     string s = string.Join("", substr);
}
 
public bool GetArrayData<T>(out T[] destArray) where T : struct
{
//    List<int> buffer
 
      destArray = Array.ConvertAll<int, T>(buffer.ToArray(), a => (T)Convert.ChangeType(a, typeof(T))); 
      buffer.Clear();
}

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


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

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

7   голосов , оценка 3.714 из 5
Похожие ответы