官术网_书友最值得收藏!

Downcasting

Now, we will talk about downcasting, which means going from, for example, a parent type to a child type. Enter the following between a set of curly braces below this line:

sampLabel.Text += ((Square)lst[0]).Perimeter();

Now, beneath the closed curly brace after the preceding line, enter the following:

else if(lst[0] is Rectangle)

Then, you can call the following code; so, copy the sampLabel.Text... line and paste it between a set of curly braces:

sampLabel.Text += ((Rectangle)lst[0]).Perimeter();

Be sure to change Square to Rectangle, so that it gets cast down to a rectangle, and then the Perimeter function on the rectangle will be called. When you hover your mouse over Perimeter in the preceding two lines, the popups show string Square.Perimeter() and string Square.Perimeter(), respectively. If you removed (Rectangle) from the preceding line and hovered your mouse over Perimeter, the popup will show string Quad.Perimeter(). Do you understand? This is why I have the cast: because it changes the way the functions are recognized.

This is downcasting from a parent to a child class. So, when we talk about bulk actions, you cannot cast to a parent class, perform a bulk action like a sort, or if you want to add refinements called child classes and child class objects, then you can downcast.

主站蜘蛛池模板: 安义县| 朝阳县| 德化县| 蒲城县| 昌平区| 唐山市| 将乐县| 石台县| 平阳县| 黄骅市| 陵川县| 宽城| 维西| 青川县| 六安市| 齐齐哈尔市| 双鸭山市| 绍兴县| 沽源县| 海原县| 察雅县| 章丘市| 乌海市| 曲松县| 绥中县| 辉县市| 合川市| 瓦房店市| 新宁县| 邢台市| 胶南市| 乌拉特前旗| 昂仁县| 吉木萨尔县| 阳朔县| 石狮市| 安阳县| 云浮市| 榆林市| 大港区| 瑞安市|