Montag, Januar 27, 2020

Was namespace einer Klasse haben, wenn kein namespace definiert ist

In C#, wenn ich erstellen Sie eine Klasse mit keine namespace, welchen namespace ich verwenden wenn Sie versuchen, um die Klasse instanziieren?

Angenommen wichtigste ist…

namespace NamespaceTests
{
    class Program
    {
        static void Main(string[] args)
        {

        }
    }
}

… und nehme an, dass meine namespace-weniger Klasse ist …

public class test
{
    public string SayHello()
    {
        return "Hello World!";
    }
}

… und angenommen, ich habe eine weitere Klasse mit dem gleichen Namen, aber mit der Standard-namespace…

namespace NamespaceTests
{
    public class test
    {
        public string SayHello()
        {
            return "Hello Moon...";
        }
    }
}

… wie würde ich das ändern main eine Instanz von namespace-weniger-Klasse, und rufen ‚SayHello‘ um die Nachricht „Hallo Welt!“? Speziell, wie würde ich voll qualifizieren, die namespace-weniger Instanz der Klasse ‚test‘, vor allem unter Berücksichtigung, die ich haben kann eine andere Klasse auch als ‚test‘, aber mit einem Namensraum, also muss ich unterscheiden…

InformationsquelleAutor barrypicker | 2014-08-25

2 Kommentare

  1. 47

    Es ist in der global namespace und auf die verwiesen werden kann, wie diese:

    var x = new global::test();

    • Dank David – Beispiel funktionierte perfekt. Ihre Antwort war 10 Sekunden vor dem @itsme86 – award zu Ihnen, sir. +1 zum Beispiel…
    • Dies löste einen mehrdeutigen Verweis wegen einer Klasse den gleichen Namen. Man hatte einen namespace und einen nicht. Es war der Versuch zu nennen, der mit dem namespace und immer eine exception: error CS0117: ‚System.Web.Mvc.HtmlHelperExtensions‘ enthält keine definition für ‚RenderPartialViewToString
  2. 11

    Typen nicht definiert, die innerhalb eines namespace werden in der global namespace.

    Globalen Kontext-Schlüsselwort, wenn es darum geht vor dem:: – operator, bezieht sich auf den globalen namespace ist der Standard-namespace für alle C# – Programm und sonst Unbenannte.

    Folgende Beispiel zeigt, wie der Globale Kontext-Schlüsselwort
    um anzugeben, dass die Klasse TestApp ist definiert in den globalen namespace:

    C# class TestClass : global::TestApp { }

Kostenlose Online-Tests