В C # мне нужно иметь возможность создавать массив объектов Type во время выполнения на основе разделенного запятыми списка типов данных, передаваемых в функцию в виде строки. Вот что я пытаюсь сделать:
// create array of types
Type[] paramTypes = { typeof(uint), typeof(string), typeof(string), typeof(uint) };
Но мне нужно иметь возможность вызывать мою функцию следующим образом:
MyFunction("uint, string, string, uint");
и пусть он генерирует массив динамически на основе переданной строки. Вот моя первая попытка:
void MyFunction(string dataTypes)
{
//out or in parameters of your function.
char[] charSeparators = new char[] {',', ' '};
string[] types = dataTypes.Split(charSeparators,
stringSplitOptions.RemoveEmptyEntries);
// create a list of data types for each argument
List<Type> listTypes = new List<Type>();
foreach (string t in types)
{
listTypes.Add(Type.GetType(t));
}
// convert the list to an array
Type [] paramTypes = listTypes.ToArray<Type>();
}
Этот код просто создает массив нулевых объектов типа System.Type. Я уверен, что проблема заключается здесь:
listTypes.Add(Type.GetType(t));
Предложения о том, почему этот синтаксис не работает?