以下是我在一个包含相当复杂的反射案例中得到的内容:
static int PopulateValues<T>(List<string> propertyNames, ref T list) { /*...*/ }
// Example call:
PopulateValues(propertyNames, ref list1);
我真的很想添加参数
并进行参数 ref T[] 列表
以允许使用:
PopulateValues(propertyNames, ref list1, ref list2, ...);
然而,这给了我以下错误:
参数不能同时具有“params”和“ref”修饰符。
我最初的想法是让
list
成为一个object[]
,但使用起来会很丑陋(强制转换object
)。因此,目前我对每种类型调用方法一次,进行不必要的多次枚举。已解决:在参数类上调用反射方法(
SetValue
、GetValue
、InvokeMember
等)时,我不需要ref
,这意味着我可以完全跳过ref
。实际上,我应该尝试一下这个方法。