如果我有一個對象,它看起來像:對象[]列出<Interface>返回null
class Person : IProxy
{
// Properties
}
而且我有一個返回object
這實際上是一個List<Person>
的方法:
object GetList()
{
List<Person> people = new List<Person>();
person.Add(new Person());
person.Add(new Person());
return people;
}
爲什麼下面的代碼是否會導致null?
var obj = GetList() as List<IProxy>;
但下面的代碼返回一個列表:
var obj = GetList() as List<Person>;
在Visual Studio的手錶面板,我喜歡的類型被報告爲:
object {System.Collections.Generic.List<Person>}
一個'名單'是_not_一個'名單'不管人對IProxy關係。在stackoverflow上有很多關於這個問題的問題(vs vs協方差)。簡而言之,您可以這樣做:'(GetList()as List ).Cast ();' –
Rob