【发布时间】:2017-06-20 18:19:31
【问题描述】:
我的同事告诉我,可以将 List<BaseClass> 转换为 List<DerivedClass>(他们没有向我展示工作示例)。我认为不可能将父类转换为子类(但我知道可以反过来做)。我已经看到几个相关的问题,人们说它不能完成,人们说它可以 - 没有一个提议的解决方案对我有用。我总是得到一个:
System.InvalidCastException.
Unable to cast object of type 'BaseClass' to 'ChildClass'
这绝对可能吗?如果是这样,我做错了什么?这是我的代码(为本问题的目的进行了简化):
父类:
public class ParentClass
{
public string Name = "";
}
儿童班:
public class ChildClass: ParentClass
{
public string Date = "";
}
转换:
List<ParentClass> parentList = ServiceApi.GetParentClassList().ToList();
List<ChildClass> childList = parentList.Cast<ChildClass>().ToList();
我的实际代码要复杂得多,但应该适用相同的原则。
【问题讨论】:
-
@RufusL 我不认为重复是完全重复的。 OP的问题并不完全相同
-
@CamiloTerevinto 你是对的,但它与我标记的问题重复。
-
@CamiloTerevinto 感谢您的澄清!同意,但由于 Lews Therin 找到了合适的人选,我将放弃最后一票。
标签: c# oop inheritance parent-child