我想对所有相同的代码执行两次,但是只针对两个不同的对象。我从SOAP API中获得了这些对象(而不是过时的)。 我想避免重复编写重复的代码。我将使用原始对象并进行很多操作(以相同的方式),唯一的区别是对象类型是不同的,所以这就是为什么我需要制作通用对象的原因。我希望它返回与参数相同的类型。我遇到一个问题,如果我执行这样的代码
public static class ParamsHelper<T>
{
public static async Task<T[]> Whatever(T[] rptParams)
{
//do some stuff to rptparams
return rptParams;
}
}
// then I call it like this below:
var params = await ParamsHelper.Whatever<ItemP[]>(new ItemP[]{});
// it says can't convert type ItemP[] to type ItemP[][].
此外,我正在使用LINQ进行所有操作。我很乐意提供有关如何访问对象字段的建议(也许是反射?)
答案 0 :(得分:1)
您必须在方法上声明泛型。
public static async Task<T[]> Whatever<T>(T[] rptParams)
用法通常暗含在用法中,因此您不必通过它。
如果必须通过它,则不要将其设置为数组。
ParamsHelper.Whatever<ItemP>(new ItemP[] { });