Я хотел бы преобразовать T в T [], если это массив.C#: Преобразование T в T []
static T GenericFunction<T>(T t)
{
if (t == null) return default(T);
if (t.GetType().IsArray)
{
//if object is an array it should be handled
//by an array method
return (T) GenericArrayFunction((T[])t);
}
...
}
static T[] GenericArrayFunction<T>(T[] t)
{
if (t == null) return default(T);
for (int i = 0 ; i < t.Length ; i++)
{
//for each element in array carry
//out Generic Function
if (t[i].GetType().IsArray())
{
newList[i] = GenericArrayFunction((T[])t[i]);
}
else
{
newList[i] = GenericFunction(t[i]);
}
}
...
}
Ошибка Если я пытаюсь (T []) т
Невозможно преобразовать тип 'T' для 'T []
Ошибка Если я просто пытаюсь для передачи t
Аргументы типа для метода 'GenericAr rayFunction (T []) не может быть выведено из использования. Попробуйте явно указать аргументы типа.
Просьба представить контекст. –
Если 'T' - массив,' T [] '- массив массивов. Вероятно, это не то, чего вы ожидали. – Gabe
Если 'T' - массив, тогда' T [] '- массив массивов. Я сомневаюсь, что это то, что вы хотите. Вы имеете в виду, что если T - массив некоторого неизвестного элемента типа U, то вы хотите получить тип «массив из U», 'U []'? – jalf