如果我創建類A,並且類B繼承自類A,爲什麼C#要求我在它們之間明確轉換?C#顯式轉換派生類型
例如:
public class Mammal
{
}
public class Dog : Mammal
{
}
...
Mammal foo = new Dog(); // Invalid, wants an explicit cast
Mammal bar = (Mammal)new Dog(); // This one works
我只是好奇的理由是,限制落後的東西。
顯式轉換不應該被要求,當我測試你的代碼時,第一個版本工作得很好。你能發佈更完整的樣本嗎? – itowlson 2010-01-29 19:27:28
我不知道誰會投這個問題,當它暗示上演不能自動工作。 – Blindy 2010-01-29 19:28:43
Downvoted,因爲這段代碼實際上起作用 – 2010-01-29 19:31:12