Was ist der Unterschied zwischen "global::System" und "System".NET?
-
03-07-2019 - |
Frage
Ich habe gerade ein Upgrade VS-2005-Projekt auf VS 2008 und wurde die Prüfung der änderungen.Ich bemerkte einer der .Designer.cs-Dateien hatte sich deutlich verändert.Die Mehrheit der änderungen, die waren einfach Ersatz System mit global::System.Für Beispiel,
protected override System.Data.DataTable CreateInstance()
wurde
protected override global::System.Data.DataTable CreateInstance()
Was ist hier Los?
Lösung
Die ::operator genannt, ist ein Namespace Alias Qualifier.
global::System.Data.DataTable
ist das gleiche wie:
System.Data.DataTable
Visual Studio 2008 Hinzugefügt, die es dem designer generierten code zu vermeiden unklare Verweis Probleme, die gelegentlich passiert, wenn Menschen geschaffen Klassen " - System...Zum Beispiel:
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);
}
}
Jedoch:
global::System.Console.Writeline("This works");
Zur weiteren Lektüre:
http://msdn.microsoft.com/en-us/library/c3ay4x3d(VS.80).aspx