¿Qué significa global :: C#? por ejemplo, ¿cuál es la diferencia entrequé significa global :: C#
private global::System.Int32 myInt;
y
private int myInt;
Gracias
¿Qué significa global :: C#? por ejemplo, ¿cuál es la diferencia entrequé significa global :: C#
private global::System.Int32 myInt;
y
private int myInt;
Gracias
Es el espacio de nombres "global" - que obliga al compilador para buscar un nombre sin tomar otros utilizando directivas en consideración . Por ejemplo, supongamos que tiene:
public class Bar{}
namespace Foo
{
public class Bar {}
public class Test
{
static void Main()
{
Bar bar1 = null; // Refers to Foo.Bar
global::Bar bar2 = null; // Refers to the "top level" Bar
}
}
}
Básicamente se trata de una forma de evitar colisiones de nombres - que es más probable verlo en código de la herramienta-generado, donde la herramienta no conoce necesariamente todos los otros tipos de el sistema. Es más raro necesitarlo en código escrito manualmente.
Consulte "How to: Use the global namespace alias" en MSDN para obtener más información, junto con ::
namespace qualifier.
Es el alias del espacio de nombres global.
Si declara un tipo llamado System.Int32
en su base de código, puede distinguir el construido en .NET uno utilizando este alias.
// your code
namespace System
{
public class Int32
{
}
}
// You could reference the BCL System.Int32 like this:
global::System.Int32 bclInt;
System.Int32 myInt;
Ver How to: Use the Global Namespace Alias (C# Programming Guide) en MSDN.
Su 'Int32' es' global :: System.Int32': su espacio de nombres 'System' no está anidado. Además, los espacios de nombres no tienen visibilidad. – hvd
@hvd: Por supuesto, los espacios de nombres tienen * visibility *; deben tener * visibilidad * porque pueden * ocultarse *, y un espacio de nombre * oculto * por definición no es * visible *. Creo que quizás quisiste decir que los espacios de nombres no tienen * accesibilidad *, aunque es una forma extraña de caracterizar el acceso al espacio de nombres; una mejor manera de pensarlo es que * todos los espacios de nombres tienen acceso público *. –
@EricLippert Admitiré que nunca he oído hablar de espacios de nombres ocultos. Después de buscarlo, ¿se refiere a los espacios de nombres en un ensamblaje externo que solo contiene clases internas? Si es así, Visual Studio y el compilador C# no están de acuerdo en si son visibles: 'using System.Data.Entity.Internal;' está subrayado como un error, pero aceptado por el compilador. No sé lo que dice la especificación. – hvd
Se utiliza para hacer referencia al espacio de nombre global. Esto es útil si está escribiendo código en un espacio de nombres que ya existe en otro lugar.
ver este para obtener más información: http://msdn.microsoft.com/en-us/library/c3ay4x3d.aspx
Así es, Es generado por Microsoft marco de la entidad, cuando se trata de generar código a partir de un archivo de .edmx. Muchas gracias – user1010572