public สามารถมองเห็นได้จากทุกที่
internal สามารถมองเห็นได้ภายในชุดประกอบเท่านั้น
คุณมักจะใช้ภายในเพื่อปกป้อง API ภายในเท่านั้น ตัวอย่างเช่นคุณสามารถแสดงวิธีการที่มากเกินไปได้หลายวิธี:
public int Add(int x, int y)
public int Add(int x,int y, int z)
ซึ่งทั้งสองเรียกวิธีการภายใน
internal int Add(int[] numbers)
จากนั้นคุณสามารถเพิ่มความซับซ้อนให้กับวิธีการได้ แต่ "ป้องกัน" โดยใช้วิธีการจัดซุ้มซึ่งอาจช่วยให้โปรแกรมเมอร์เรียกวิธีการได้อย่างถูกต้อง (วิธีการใช้งานกับพารามิเตอร์อาร์เรย์อาจมีขีด จำกัด ของค่าโดยพลการตัวอย่างเช่น)
นอกจากนี้ควรสังเกตด้วยว่าการใช้ Reflection วิธีใด ๆ และทั้งหมดสามารถเรียกใช้ได้ไม่ว่าจะมองเห็นได้อย่างไร "แฮ็ก" อื่นเพื่อควบคุม / เข้าถึง API ที่ซ่อนอยู่ภายใน