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?

War es hilfreich?

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

Andere Tipps

Menschen daran zu hindern, zu tun

scroll top