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();
}