외부로부터 타입(클래스, 구조체, 인터페이스, 델리게이트 등) 혹은 그 타입 멤버들(메서드, 속성, 이벤트, 필드 등)로의 접근을 제한할 때 사용
보통 클래스와 구조체는 네임스페이스 바로 밑에 선언하는데, 디폴트로 internal이 설정된다
interface와 enum의 멤버는 기본적으로 public이며, 멤버별 별도 접근 제한자를 명시하지 않는다
클래스의 필드는 기본적으로 private(객체지향 원칙)
메서드/속성은 외부에서 호출해야 하는것은 public, 내부에서만 사용되는 것은 private
internal class MyClass
{
private int _id = 0;
public string Name { get; set; }
public void Run(int id) {}
protected void Execute() { }
}