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

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.

主站蜘蛛池模板: 宜兰市| 滁州市| 龙南县| 彭水| 祁东县| 友谊县| 兰西县| 珲春市| 阳西县| 清涧县| 嵊泗县| 涟源市| 墨竹工卡县| 昭觉县| 英吉沙县| 富阳市| 济宁市| 威远县| 化隆| 蒲江县| 同心县| 富川| 班戈县| 黄冈市| 大埔县| 乐至县| 交口县| 平乡县| 呈贡县| 泗阳县| 民丰县| 邵阳县| 南江县| 陵川县| 衡山县| 福州市| 抚州市| 香河县| 大余县| 宜都市| 乳山市|