Upcasting และ Downcasting:
Upcasting: การแคสต์จากคลาส Derived-Class ไปยัง Base Class Downcasting: การแคสต์จากคลาสพื้นฐานไปยังคลาสที่ได้รับ
มาทำความเข้าใจเช่นเดียวกับตัวอย่าง:
พิจารณาสองคลาส Shape as My parent class และ Circle as a Derived class ซึ่งกำหนดไว้ดังนี้:
class Shape
{
public int Width { get; set; }
public int Height { get; set; }
}
class Circle : Shape
{
public int Radius { get; set; }
public bool FillColor { get; set; }
}
การอัปโหลด:
รูปร่าง s = รูปร่างใหม่ ();
วงกลม c = s;
ทั้ง c และ s อ้างถึงตำแหน่งหน่วยความจำเดียวกัน แต่ทั้งสองมีมุมมองที่แตกต่างกันคือการใช้การอ้างอิง "c" คุณสามารถเข้าถึงคุณสมบัติทั้งหมดของคลาสฐานและคลาสที่ได้รับเช่นกัน แต่การใช้การอ้างอิง "s" คุณสามารถเข้าถึงคุณสมบัติได้ ของคลาสหลักเท่านั้น
ตัวอย่างที่ใช้ได้จริงของ upcasting คือคลาส Stream ซึ่งเป็นคลาสพื้นฐานของโปรแกรมอ่านสตรีมทุกประเภทของ. net framework:
โปรแกรมอ่าน StreamReader = StreamReader ใหม่ (FileStreamReader ใหม่ ());
ที่นี่ FileStreamReader () ถูกอัปเดตเป็น streadm reder
Downcasting:
รูปร่าง s = วงกลมใหม่ (); ที่นี่ตามที่อธิบายไว้ข้างต้นมุมมองของ s เป็นผู้ปกครองเพียงคนเดียวเพื่อที่จะทำให้ทั้งผู้ปกครองและเด็กเราจำเป็นต้องปรับลดลง
var c = (วงกลม) s;
ตัวอย่างที่ใช้ได้จริงของ Downcasting คือระดับปุ่มของ WPF
Employee emp= mgr;
ควรพอเพียง