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

Default Access Modifier สำหรับ Class ใน C# คืออะไร

ถ้าไม่ระบุ Access Modifier สำหรับ Class ค่าเริ่มต้นคือ internal

Internal Access Specifier

  • เข้าถึงได้จากทุกที่ภายใน **Assembly เดียวกัน** (Project เดียวกัน)
  • ไม่เข้าถึงได้จาก Assembly อื่น (External)
  • ใช้สำหรับ Implementation Details ภายใน Library

ตัวอย่าง

using System;

namespace RectangleApplication
{
    // ไม่มี Access Modifier = internal
    class Rectangle
    {
        // Member Variables - internal (default สำหรับ Members ใน internal Class)
        internal double length;
        internal double width;
        
        // Method - private (default สำหรับ Members)
        double GetArea()
        {
            return length * width;
        }
        
        // Public Method - เข้าถึงได้จากนอก
        public void Display()
        {
            Console.WriteLine("Length: {0}", length);
            Console.WriteLine("Width: {0}", width);
            Console.WriteLine("Area: {0}", GetArea());
        }
    }
    
    // Class อื่นใน Assembly เดียวกัน เข้าถึง internal Members ได้
    class ExecuteRectangle
    {
        static void Main(string[] args)
        {
            Rectangle r = new Rectangle();
            r.length = 4.5;   // เข้าถึง internal Field ได้
            r.width = 3.5;    // เข้าถึง internal Field ได้
            r.Display();      // เรียก Public Method ได้
            Console.ReadLine();
        }
    }
}

ผลลัพธ์

Length: 4.5
Width: 3.5
Area: 15.75

Access Modifiers สำหรับ Class (Top-level)

ModifierVisibilityDefault?
publicทุก Assemblyไม่
internalAssembly เดียวกัน✅ Default
privateNested Class เท่านั้นNested Class Default
protectedNested Class เท่านั้นไม่
protected internalNested Class เท่านั้นไม่
private protectedNested Class เท่านั้นไม่

Members Default Access

  • ใน class: **private** (default)
  • ใน struct: **private** (default)
  • ใน interface: **public** (always, ไม่ระบุได้)
  • ใน enum: **public** (always)

Best Practice

ระบุ Access Modifier ชัดเจนเสมอ เพื่อความชัดเจนและ Maintainability