This article is currently in the process of being translated into Thai (~99% done).
Visibility
Visibility ของ class, method, variable หรือ property จะเป็นตัวบอกว่า เราสามารถเข้าถึงสิ่งนั้นๆเพื่อนำไปใช้งานได้ visibility ที่ใช้กันบ่อยๆก็คือ private และ public แต่จริงๆแล้ว visibility ใน C# มีหลายประเภท
public - สามารถเข้าถึงได้ทุกที Enum และ interface ค่าตั้งต้นนั้น (default) เป็น public
protected - สามารถเข้าถึงได้ใน class เดียวกัน หรือ class ที่ inherit (การสืบทอด) มาจาก class เดียวกัน
internal - สามารถเข้าถึงได้ใน project เดียวกัน เท่านั้น
protected internal – เหมือน internal แต่สามารถเข้าถึงได้ใน class ที่ inherit (การสืบทอด) มาจาก class เดียวกัน ถึงแม้ว่าจะอยู่กันคนละ project
private - สามารถเข้าถึงได้ใน class เดียวกัน เท่านั้น class และ struct ค่าตั้งต้นนั้น (default) เป็น private
เช่น ถ้าเรามี class 2 class เราสามารถใช้ private member ของ class1 ได้ใน class1 เท่านั้น เราไม่สามารถสร้าง instance object ของ class1 ใน class2 ได้
ถ้า class 2 inherit จาก class1 เราจะสามารถเข้าถึง non-private member ของ class1 ได้ใน class2