C# เชิงวัตถุ

ใช้การประกอบแทนการสืบทอด

ประกอบพฤติกรรมจากออบเจกต์ที่ทำงานร่วมกัน

ทำงานอย่างไร

การประกอบช่วยให้คลาสโฟกัสงานเดียวและเลี่ยงลำดับการสืบทอดที่แข็งตัว

Order มอบการคำนวณราคาให้รายการสินค้าของมัน ออบเจกต์แต่ละตัวมีหน้าที่ชัดเจนหนึ่งอย่าง

ตัวอย่าง C# ที่รันได้

C#
รันโค้ด →
Program.cs
using System;
using System.Collections.Generic;
using System.Linq;

record LineItem(string Name, decimal Price);
class Order
{
    public List<LineItem> Items { get; } = new();
    public decimal Total => Items.Sum(item => item.Price);
}

class Program
{
    static void Main()
    {
        var order = new Order();
        order.Items.Add(new("Book", 30m));
        order.Items.Add(new("Pen", 5m));
        Console.WriteLine(order.Total);
    }
}
ผลลัพธ์ที่คาดหวัง
35

ฝึกกับดีบักเกอร์

ตั้ง breakpoint ที่การกำหนดค่าหรือเงื่อนไขสำคัญ กด Debug แล้วดูค่าตัวแปรภายในก่อนไปยังบรรทัดถัดไป