CSharp - Namespace Name hiding

Introduction

If the same type name appears in both an inner and an outer namespace, the inner name will shadow the outer name.

To refer to the type in the outer namespace, you must qualify its name.

For example:

namespace Outer
{
     class Test { }

     namespace Inner
     {
         class Test { }

         class Test
         {
           Test f1;         // = Outer.Inner.Test
           Outer.Test f2;   // = Outer.Test
         }
     }
}