Int32[] myArray = new Int32[0];
//Somewhere else in code:
Type t = myArray.GetType();
//t == Int32[]
//element type of t == ???
Как узнать тип элемента, который t был создан для хранения.
Единственный найденный мной пример работает с непустыми массивами, где вы просто делаете myArray [i] .GetType ().Итак, что вы делаете для длины массива 0?
К вашему сведению: я сделал следующее, и он работает нормально, но вау ... он использует преобразование строк и очень уродлив.Должен быть лучший способ:
Type t = myArray.GetType();
string strT = t.ToString();
string strArrayBase = strT.Substring(0, strT.Length - 2);
Type elementType = Type.GetType(strArrayBase);