我有一个对象[],我用它来通过反射动态调用方法。由于AmbiguousMatchException我需要知道类型,并且很难提前知道它们。所以我想采用“params object [] args”并得到所有这些的Type []。
答案 0 :(得分:3)
如果您有linq可用,您可以轻松获得与对象匹配的一系列类型,但我不确定它是否有助于您的最终目标。
var types = args.Select(arg => arg.GetType()).ToArray();
您是否打算检查对象数组中的类型,然后检查方法签名并尝试相应地匹配它们?
答案 1 :(得分:1)
请试试这个:
IList<Type> typeList = new List<Type>();
foreach(object item in args)
{
typeList.Add(item.GetType());
}
typeList.ToArray();
答案 2 :(得分:0)
为Array.ConvertAll功能提供一个镜头:
Type[] objTypes = Array.ConvertAll<object, Type>(
objArray,
delegate(object obj){
if(obj==null) return null;
return obj.GetType();
});