将派生对象传递给接受基类的方法

时间:2016-10-28 21:43:08

标签: c# .net

我将派生类型(SuperCar)的对象传递给接受基类型(Car)对象的方法。在将(Car)转换为派生对象(SuperCar)之后,仍保留值(程序打印出4)。

我想知道我是否向下转换为什么向上转播保留值?怎么在C#中调用?

<a href="~/Survey/Take/@HttpUtility.UrlPathEncode(survey.Name)">@survey.Name</a>

1 个答案:

答案 0 :(得分:0)

施法不会改变对象。它只是改变了编译器看到对象的方式。当您从SuperCar投射到Car时 - 您所做的就是告诉编译器&#34;这是Car。这样对待它。&#34;。它实际上 SuperCar,但编译器并没有知道

当你 upcast 时,你告诉编译器&#34;这是SuperCar&#34;。如果是,那么演员阵容就可以了。如果它,那么运行时会检测到您说它不是一种类型,并且会抛出错误。