Section 6: Lab: Polymorphism
- หลักการ Polymorphism หรือการมีได้หลายรูปแบบ
- Method Overloading และ Operator Overloading
- virtual, override และความต่างกับการซ่อนด้วย new
- ตรวจชนิดของ Object ด้วย Pattern Matching
- Lab: คำนวณค่าขนส่งหลายรูปแบบผ่าน Method เดียวกัน
Section 7: Lab: sealed และ abstract class
- ความสำคัญของ sealed class และ sealed method
- abstract class และ abstract method ต่างจาก class ทั่วไปอย่างไร
- Template ของขั้นตอนด้วย abstract class
- Lab: ระบบชำระเงินที่บังคับให้ทุกช่องทางทำตามขั้นตอนเดียวกัน
Section 8: Lab: Interface
- การใช้งาน Interface และความต่างระหว่าง abstract class กับ Interface
- Implement หลาย Interface และ Explicit Implementation
- Default Interface Method และ Static Abstract Member
- Interface มาตรฐานของ .NET: IComparable, IEquatable และ IDisposable
- Lab: เรียงลำดับและเปรียบเทียบ Object ด้วย Interface
Section 9: Lab: Generics, Delegate, Event และ Extension Members
- Generic Class และ Method พร้อม Constraint
- Delegate, Func, Action และ Lambda
- ประกาศและใช้งาน event สำหรับแจ้งการเปลี่ยนแปลง
- เพิ่มความสามารถให้ Type เดิมด้วย Extension Members แบบ C# 14
- Lab: Repository แบบ Generic ที่แจ้ง Event เมื่อข้อมูลเปลี่ยน
Section 10: Lab: หลัก SOLID และ Dependency Injection
- Single Responsibility และ Open/Closed Principle
- Liskov Substitution, Interface Segregation และ Dependency Inversion
- Dependency Injection ด้วย Microsoft.Extensions.DependencyInjection
- Lifetime แบบ Singleton, Scoped และ Transient
- Lab: ปรับโค้ดที่ผูกติดกันให้ทดสอบได้ด้วย DI