在C#中动态创建Type数组

在C#中,我需要能够在运行时基于逗号分隔的数据类型列表创建一个Type对象数组,这些数据类型作为字符串传递给函数.基本上,这是我想要完成的:
// create array of types
Type[] paramTypes = { typeof(uint),typeof(string),typeof(uint) };

但我需要能够像这样调用我的函数

MyFunction("uint,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类型的null对象数组.我很确定问题出在这里

listTypes.Add(Type.GetType(t));

关于为什么这种语法不起作用的建议?

解决方法

问题是.NET中没有uint和string类型.这些是实际 System.UInt32System.String类型的C#类型别名.所以你应该像这样调用你的函数
MyFunction("System.UInt32,System.String,System.UInt32");

相关文章

在要实现单例模式的类当中添加如下代码:实例化的时候:frmC...
1、如果制作圆角窗体,窗体先继承DOTNETBAR的:public parti...
根据网上资料,自己很粗略的实现了一个winform搜索提示,但是...
近期在做DSOFramer这个控件,打算自己弄一个自定义控件来封装...
今天玩了一把WMI,查询了一下电脑的硬件信息,感觉很多代码都...
最近在研究WinWordControl这个控件,因为上级要求在系统里,...