เมื่อคุณใช้ตัวดัดแปลงที่ปิดสนิทใน C # บนเมธอด เมธอดนั้นจะสูญเสียความสามารถในการแทนที่ วิธีการปิดผนึกควรเป็นส่วนหนึ่งของคลาสที่ได้รับและวิธีการจะต้องเป็นวิธีที่ถูกแทนที่
เรามาดูตัวอย่างกัน −
ตัวอย่างต่อไปนี้จะไม่อนุญาตให้คุณแทนที่เมธอด display() เนื่องจากมีตัวแก้ไขแบบปิดผนึกสำหรับคลาสที่ได้รับ ClassTwo -
ClassOne คือคลาสพื้นฐานของเรา ในขณะที่ ClassTwo และ ClassThree เป็นคลาสที่ได้รับ -
ตัวอย่าง
class ClassOne {
public virtual void display() {
Console.WriteLine("baseclass");
}
}
class ClassTwo : ClassOne {
public sealed override void display() {
Console.WriteLine("ClassTwoderivedClass");
}
}
class ClassThree : ClassTwo {
public override void display() {
Console.WriteLine("ClassThree: Another Derived Class");
}
} ด้านบน ภายใต้คลาสที่ได้รับ ClassThree เราได้พยายามแทนที่วิธีการปิดผนึก นี่จะแสดงข้อผิดพลาดเนื่องจากไม่อนุญาตเมื่อคุณใช้วิธีปิดผนึก