Cuando hacemos referencia a una clase o un tipo desde nuestro código podemos emplear una ruta completa de espacios de nombres para llegar hasta él. Por ejemplo, si escribimos System.Console.ReadLine(); se busca la clase Console dentro del espacio de nombres System que está en la raíz de todos los espacios de nombres (es decir, System se encuentra en la parte más alta de la jerarquía de espacios nombres junto a otros como Cryptography, etc... y los que nosotros mismos definamos o agreguemos a un proyecto).

¬ŅQu√© pasa sin embargo si escribimos esa misma l√≠nea dentro de una clase que est√° contenida dentro de un espacio de nombres llamado tambi√©n System?, por ejemplo:

namespace MiEmpresa.MiBiblioteca
{
    namespace System
    {
        class MiClase
        {
            System.Console.ReadLine();
        }
    }
}

El resultado ser√° que la b√ļsqueda de la clase Console comienza en el espacio de nombres actual y s√≥lo cuando se recorra y no aparezca (porque pudiera aparecer si la hemos definido nosotros) se buscar√° desde el ra√≠z que es el que verdaderamente nos interesaba.

En C# 2.0 se puede evitar esto con el nuevo cualificador que sirve para indicar la raíz y que se denota mediante el operador "::", es decir, dos símbolos de dos puntos seguidos. Así en el ejemplo, bastará con escribir:

::System.Console.ReadLine();

para que se busque desde la raíz directamente.

Cuiroso ¬Ņverdad?

💪🏻 ¬ŅEste post te ha ayudado?, ¬Ņhas aprendido algo nuevo?
Pues NO te pido que me invites a un café... Te pido algo más fácil y mucho mejor