Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C#

เมธอดส่วนตัว (Private Methods) ใน C#

เมธอดที่มี access modifier เป็น private จะเข้าถึงได้เฉพาะภายในคลาสเดียวกันเท่านั้น ใช้เพื่อซ่อนรายละเอียดการทำงานภายใน (Implementation Detail) และรองรับการ Encapsulation

ลักษณะสำคัญ

  • เข้าถึงได้เฉพาะในคลาสที่ประกาศเท่านั้น
  • อินสแตนซ์ของคลาส (Instance) ไม่สามารถเรียกได้
  • คลาสลูก (Derived class) ไม่สามารถเรียกได้ (ยกเว้นถ้าเป็น nested class)
  • ใช้สำหรับ Helper methods, Validation, Internal logic

ตัวอย่างโค้ด

using System;

class Demo {
    // Private method - เรียกได้เฉพาะในคลาส Demo
    private int DisplayOne() {
        return 10;
    }
    
    // Public method - เรียกได้จากภายนอก
    public int DisplayTwo() {
        return 20;
    }
    
    // Public method เรียก private method ภายในได้
    public int GetSum() {
        return DisplayOne() + DisplayTwo(); // เรียกได้เพราะอยู่ในคลาสเดียวกัน
    }
}

class Program {
    static void Main() {
        Demo d = new Demo();
        
        // d.DisplayOne(); // ❌ Compile Error: inaccessible due to protection level
        Console.WriteLine(d.DisplayTwo());  // ✅ OK: 20
        Console.WriteLine(d.GetSum());      // ✅ OK: 30
    }
}

แนวทางการใช้งาน

สถานการณ์Access Modifier
ใช้เฉพาะภายในคลาสprivate
ใช้ในคลาสและคลาสลูกprotected
ใช้ใน Assembly เดียวกันinternal
ใช้ได้ทุกที่public

Best Practice

  • เริ่มต้นด้วย private เสมอ เปิดเผยเฉพาะเมื่อจำเป็น
  • ชื่อ Private method ควบอธิบายหน้าที่ชัดเจน (เช่น CalculateTax, ValidateInput)
  • หลีกเลี่ยง logic ซับซ้อนใน public method — แยกเป็น private methods ย่อยๆ