C# 列表<;t>;在不同项目中使用getter时,将类型更改返回到T[]

C# 列表<;t>;在不同项目中使用getter时,将类型更改返回到T[],c#,generics,setter,getter,C#,Generics,Setter,Getter,基本上,我在VisualStudio2010中有两个项目。项目1包含一个getter/setter对,如下所示: public class MyFirstType { public string Name { set; get; } public List<T> OtherList {set; get; } public override String toString() { ... } } public class MyClass { publi

基本上,我在VisualStudio2010中有两个项目。项目1包含一个getter/setter对,如下所示:

public class MyFirstType
{
    public string Name { set; get; }
    public List<T> OtherList {set; get; }
    public override String toString() { ... }
}

public class MyClass
{
    public List<MyFirstType> MyType { get; set; };
    public override String toString() { ... }
}
公共类MyFirstType
{
公共字符串名称{set;get;}
公共列表OtherList{set;get;}
公共重写字符串toString(){…}
}
公共类MyClass
{
公共列表MyType{get;set;};
公共重写字符串toString(){…}
}
在project2中,我尝试这样使用MyClass:

MyClass mclass = new MyClass();
List<MyFirstType> myTypeList = mclass.MyType;
MyClass mclass=newmyclass();
List myTypeList=mclass.MyType;
但是,我得到了以下错误:

Cannot implicitly convert type 'MyType[]' to 'System.Collections.Generic.List<MyFirstType>' 
无法将类型“MyType[]”隐式转换为“System.Collections.Generic.List”
我只是不明白这里发生了什么。如果我在project1中使用这个结构,我将得到一个列表


我知道列表在内部表示为T[]。但为什么返回类型的行为会发生变化?

最可能的原因是您有多个
MyClass
,而代码选择的不是您期望的类型。“F12”(转到定义)通常能很快解开这些谜团。

最可能的原因是您有多个
MyClass
,而代码选择的不是您期望的。“F12”(转到定义)通常能很快解决此类谜团。

如果项目1是WCF服务或类通过WCF服务使用,则默认情况下列表转换为数组。如果是这样,您应该转到服务参考并选中适当的选项(转换为列表)。

如果项目1是WCF服务或类通过WCF服务使用,则默认情况下列表转换为数组。如果是这样,您应该转到“服务参考”并选中相应的选项(转换为列表)。

过去是阵列吗?对我来说,听起来只是其中一个项目没有正确构建,或者引用了一个旧项目version@MarcGravell建议比我的答案更有可能。。。当你需要它时,神秘的“将注释转换为答案”在哪里:)
publicslist-OtherList{set;get;}
根本不应该编译;您没有在该上下文中定义
t
。@Servy此行只是为了表明在该类中使用了另一个泛型列表。实际上是我没有提到的另一种类型。作为一般观察:当WCF站点介于两者之间时,有必要提及这一事实。它过去是数组吗?对我来说,听起来只是其中一个项目没有正确构建,或者引用了一个旧项目version@MarcGravell建议比我的答案更有可能。。。当你需要它时,神秘的“将注释转换为答案”在哪里:)
publicslist-OtherList{set;get;}
根本不应该编译;您没有在该上下文中定义
t
。@Servy此行只是为了表明在该类中使用了另一个泛型列表。事实上,这只是我没有提到的另一种类型。一般来说,当WCF站点介于两者之间时,有必要提及这一事实。谢谢。Project1确实是一个WCF服务。在以正确的方式配置它(集合类型为List)之后,它工作了。谢谢,谢谢。Project1确实是一个WCF服务。在以正确的方式配置它(集合类型为List)之后,它工作了。谢谢