在 .net 中,使用反射是否有一种方法可以确定方法的参数是否标记了 "params" 关键字?
检查ParameterInfo
对象是否应用了ParamArrayAttribute
:
//use string.Format(str, args) as a test
var method = typeof(string).GetMethod("Format", new[] {typeof(string), typeof(object[])});
var param = method.GetParameters()[1];
Console.WriteLine(Attribute.IsDefined(param, typeof(ParamArrayAttribute)));