System.Array and object[] - C#
Формулировка задачи:
Из массива object[] формируется строка. В данном случае все работает. Т.е string s = "456".
Каким образом можно реализовать ту же функциональность изменив object[] на System.Array?
Следующее решение сохраняет в строке s не значения массива, а его тип. т.е s = "System.Byte[]".
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(); }
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(); }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д