6 Stimmen

Warum ist das Paar in System.Web.UI?

Zumindest für mich ist die Klasse Pair eine sehr vielseitig einsetzbare Klasse. Warum hat Microsoft sie also in den System.Web.UI-Namensraum aufgenommen?

Gibt es einen Grund, den mein winziges Gehirn nicht begreifen kann?

Gracias.

5voto

JacquesB Punkte 40790

Es wird zur Serialisierung des Viewstate verwendet (zusammen mit seinem Cousin Triplet).

Ich würde vermuten, dass der Grund, warum sie nicht Teil der Basisbibliothek sind (obwohl es nichts ASP.NET-spezifisches an ihnen gibt) ist, dass sie nicht sehr nützlich sind, da sie nicht typisiert sind.

Die Aufnahme von untypisierten Paaren und Tripletts in die Basisbibliothek könnte als Ermutigung zur "typlosen" Programmierung angesehen werden.

Ein typisiertes Tupel könnte jedoch nützlich sein (und ich glaube, F# hat sie). Ich denke, anonyme Typen deckt die meisten der Anwendungsfälle für heterogene Tupel obwohl.

0 Stimmen

Ich kann verstehen, warum Sie es in einer Webapplikation verwenden möchten, aber warum nicht in der gesamten Bibliothek verfügbar machen? Warum kann ich sie zum Beispiel nicht in einer einfachen DLL verwenden?

0 Stimmen

@John MacIntyre: Sie können es in einer einfachen DLL verwenden, Sie müssen nur einen Verweis auf die System.Web.UI-Assembly einschließen.

0 Stimmen

Ich erkenne, dass, aber wenn die DLL für eine Konsole-Anwendung zum Beispiel verwendet wurde, scheint es nicht seltsam, eine Abhängigkeit zu einer Web-UI-Assembly haben? Sollte sie nicht einfach im Namespace System liegen?

3voto

bdukes Punkte 144019

Ich glaube nicht, dass Sie einen guten Grund dafür finden werden. Es sieht so aus, als ob es zuerst vom Webteam erstellt wurde, also haben sie es in ihren Namensraum/ihre Baugruppe aufgenommen. Sie fügten auch eine LinkDemand für AspNetHostingPermission was bedauerlich ist.

In Bezug auf die "erwartete Verwendung", sagt MSDN

[Die Paar Klasse] ist eine Dienstleistungsklasse, die in ASP.NET auf verschiedene Weise verwendet wird, z. B. bei Aufgaben zur Verwaltung des Seitenstatus oder in Handlern für Konfigurationsabschnitte.
...
Die Paar Klasse kann auf verschiedene Weise in Implementierungen für die Persistenz des Seitenstatus verwendet werden. Die gebräuchlichste Verwendung ist die als Container für sowohl die AnsichtZustand y KontrollStatus Sammlungen. In diesem Fall ist die Erste Eigenschaft wird verwendet für AnsichtZustand und die Zweite für KontrollStatus .

0 Stimmen

Ich hatte immer den Eindruck, dass dies ein nachträglicher Gedanke war, etwas, das das web.ui-Namespace-Team wollte, aber nicht die Möglichkeit hatte, es in den System-Namespace zu integrieren. Es ist etwas, das immer an mir genagt hat, und ich habe mich gefragt, ob es einen logischen Grund gibt, den ich nicht sehen konnte.

0 Stimmen

Silo'd-Entwicklung vom Feinsten :(

3voto

Ian Newson Punkte 7037

Das beantwortet die Frage nicht direkt, aber in .NET 4 können und sollten Sie wahrscheinlich die Tupel .

Um die Frage zu beantworten: Ich glaube, es war einfach ein Fehler, Pair in System.Web.UI unterzubringen, und Microsoft hat versucht, diesen Fehler mit der Einführung der Klasse Tuple zu beheben.

0voto

Gott bewahre, dass wir ein getipptes Paar haben, das leichter als ein Wörterbuch ist und in eine getippte Liste eingebettet werden kann, so dass es indizierbar ist :). Natürlich ist die Erstellung eines solchen Paares mühelos, aber warum?

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X