kann ich setzen eine Klasse von einer anderen .net-namespace eine Klasse in meinem namespace?

StackOverflow https://stackoverflow.com/questions/138638

  •  02-07-2019
  •  | 
  •  

Frage

Kann ich setzen eine Klasse von einer anderen .net-namespace eine Klasse in meinem namespace?Ich verwende eine Klasse antlr.Sammlungen.AST - als Rückgabetyp für die Funktion der Zugehörigkeit zu einer Klasse in meinem namespace;als Ergebnis hat der Benutzer haben

using antlr.collections;
using myNamespace;

an der Spitze Ihrer Dateien, um die Nutzung meiner Funktion.Kann ich myNamespace.AST ein alias für antlr.Sammlungen.AST, so dass der Benutzer muss nur die

using myNamespace;

an der Spitze Ihrer Dateien?

War es hilfreich?

Lösung

Beachten Sie, dass die Verbraucher in Ihrem code nicht wirklich müssen haben anhand von Aussagen.Diejenigen, die machen Ihr Leben einfacher, so dass Sie nicht haben, um geben Sie antlr.Sammlungen.Foo und antlr.Sammlungen.Bar alle über Ihre Quelle.

Die größeren "impact" (wenn in der Tat, es ist wirklich eine schwere), ist, dass die Verbraucher von Ihrem code benötigen, einen harten Verweis auf die assembly, wo antlr.Sammlungen definiert ist.

Allerdings, wenn dokumentierten vorne, ganz ehrlich, ich sehe es nicht als großes problem.Es ist nicht anders, als die Verbraucher von einem SubSonic-generated DAL benötigen, verweisen beide auf das erzeugte DAL Montage und die original-SubSonic-Montage.(Und, womöglich, mit Anweisungen wie gut.)

Abhängigkeiten sind, was Sie sind.Es gibt einen Grund, Klassen sind unterteilt in namespaces-in Erster Linie für die Organisation und reduzieren Namenskonflikte.Nicht zu wissen, was Klassen sind im namespace, die Sie erwähnen, ich weiß nicht, wie wahrscheinlich solch ein Konflikt eigentlich ist, in Ihrem Szenario ...Aber versuchen zu bewegen die Klasse von einem namespace zu einem anderen, oder um die Tatsache zu verbergen, dass eine solche erforderlich ist, durch die sich eine leere Klasse aus, ist wohl nicht die beste Idee.Es wird nicht töten die Verbraucher in Ihrer Klasse zu haben, eine andere Referenz und Anweisung verwenden.

Andere Tipps

Wie über die Ableitung einer Klasse mit dem gleichen Namen in der neuen namespace?Ich meinte:

namespace MyForms {
    class Class1 : Some.Other.Namespace.Class1 {
        // ...
    }
}

erstellen Sie eine neue Klasse, die erbt die Klasse in Ihrer neuen namespace.Es ist nicht ideal, aber es ist nützlich für unit-Tests und die wie.

Sie sollten darüber nachdenken, warum Sie tun dies, obwohl die Klassen sind aufgeteilt in namespaces, die für einen Grund.

Nein, das können Sie nicht.

Der vollständige Pfad und name der Klasse ist Teil Ihrer Identität.

Wenn Sie die Ableitung von der Klasse und kehren Sie Ihre abgeleitete Klasse, Sie machen sich selbst verantwortlich für die Bereitstellung aller Unterlagen für die Rückkehr geben.

Ich glaube, Sie werden tun die Entwickler, die mit Ihrer Bibliothek ein Bärendienst, weil Sie nicht unbedingt wissen, dass das, was Sie wirklich arbeitet, ist ein Typ von antir.Sammlungen (nicht, dass ich einmal weiß, was das ist, aber das ist nicht der Punkt).Wenn der Entwickler kommt zu StackOverflow.com die Suche nach Informationen auf, die return-Typ, sind Sie eher, um Informationen zu finden, wenn der Typ wird von einer "common" - Bibliothek, oder von dir?

Die einzige Lösung ist, um zu verstecken, die ganze Abhängigkeit der Art antlr.Sammlungen.AST.

Sie können eine Adapter für diesen Zweck ist.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top