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();
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д