2010-02-26 14 views

Respuesta

45

Técnicamente, global no es una palabra clave: es una llamada "palabra clave contextual". Estos tienen un significado especial solo en un contexto de programa limitado y se pueden usar como identificadores fuera de ese contexto.

global puede y debe usarse siempre que haya ambigüedad o cada vez que un miembro esté oculto. De here:

class TestApp 
{ 
    // Define a new class called 'System' to cause problems. 
    public class System { } 

    // Define a constant called 'Console' to cause more problems. 
    const int Console = 7; 
    const int number = 66; 

    static void Main() 
    { 
     // Error Accesses TestApp.Console 
     Console.WriteLine(number); 
     // Error either 
     System.Console.WriteLine(number); 
     // This, however, is fine 
     global::System.Console.WriteLine(number); 
    } 
} 

Tenga en cuenta, sin embargo, que global no funciona cuando no se especifica el tipo de espacio de nombres para:

// See: no namespace here 
public static class System 
{ 
    public static void Main() 
    { 
     // "System" doesn't have a namespace, so this 
     // will refer to this class! 
     global::System.Console.WriteLine("Hello, world!"); 
    } 
} 
Cuestiones relacionadas