我需要创建两个类,一个采用T,另一个采用List(为简单起见,我省略了一些代码):
Partial declarations of 'TEnvelope<T>' must have the same type parameter names in the same order
我收到错误:
0
有没有办法定义这两种类型的Envelope类?
答案 0 :(得分:1)
您不能在同一名称空间中声明两个具有相同名称的类。如果你这样做,编译器认为这是一个部分声明(你可以使用partial关键字将类分解为同一程序集中的不同文件)。
我认为课程设计会引导你遇到问题所以我建议创建两个不同的类:
public class Envelope<T> {
public T Result { get; private set; }
}
public class Envelopes<T> {
public Paging Paging { get; private set; }
public List<T> Results { get; private set; }
}
它们都有不同的目的,因此创建两个不同的自然是很自然的:第一个只有一个结果,第二个结果列表和分页。
但如果你真的需要这样做,那么只能选择一个班级:
public class Envelope<T> where T : new() {
public Paging Paging { get; private set; }
public T Result { get; private set; } = new T();
}