【发布时间】:2017-01-30 02:38:21
【问题描述】:
在我尝试这样做之前,我一直以为我知道它是如何工作的;但是,以下代码会引发异常。因为TestOC 是ObservableCollection 的孩子,所以我想我可以这样做:
class MyClass
{
public string MyProperty { get; set; }
}
class TestOC : ObservableCollection<MyClass>
{
}
class Program
{
static void Main(string[] args)
{
ObservableCollection<MyClass> test = new ObservableCollection<MyClass>();
test.Add(new MyClass());
TestOC test2 = (TestOC)test;
}
}
抛出的错误是:
无法将“System.Collections.ObjectModel.ObservableCollection`1[ConsoleApplication17.MyClass]”类型的对象转换为“ConsoleApplication17.TestOC”类型。
我怎样才能在这里获得ObservableCollection 分配给我的孩子班级?
【问题讨论】:
-
为什么要将父类强制转换为子类?
-
几乎与以下内容重复:stackoverflow.com/questions/16534253/…
-
您不能将任意的
Animal转换为Dog。您可以创建一个 newDog,其属性与Animal相同,但不能进行转换。
标签: c# observablecollection variance