Here is the code,
Code:
namespace ConsoleApplication1
{
    class A
    {
        public A() 
        {
        }

        class B
        {
            public B()
            {
                A a = new A();          
            }
        };
    };

    class Program
    {
        static void Main(string[] args)
        {
            A.B b = new A.B();
        }
    }
}
There is a compiler error "ConsoleApplication1.A.B' is inaccessible due to its protection level". Why? I thought by default, A.B is internal. So it should be able to be accessed by function Main.