В java у вас есть защита уровня пакета, которая гарантирует, что классы доступны только в пакете.
Пространства имен в С# действуют более или менее как пакеты. Но С# не имеет уровня защиты для защиты классов в пространстве имен.
Есть ли конкретная причина для этого?