我的同事告訴我,有可能將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();
我的實際代碼明顯更復雜,但應適用相同的原則。
的[是否有可能基類對象分配給在C#的顯式類型轉換派生類引用?]可能的複製(https://stackoverflow.com/questions/729527/is-it-possible -to-assign-a-base-class-object-to-a-derived-class-reference-with-a) –
@RufusL我不認爲重複是完全重複的。 OP的問題是不是真的一樣 –
[C#:將基類轉換爲子類]的可能重複(https://stackoverflow.com/questions/16534253/c-sharp-converting-base-class-to-child-class ) –