From MSDN über die Unterschiede zwischen ein Element hinzufügen oder Einfügen des ASP.NET Cache:Warum gibt Cache.Add ein Objekt zurück, das das zwischengespeicherte Objekt darstellt?
Hinweis: Das Add und Insert Methoden haben die gleiche Signatur, aber es gibt subtile Unterschiede zwischen ihnen. Zuerst gibt die Methode Add ein Objekt zurück, das das zwischengespeicherte Element darstellt, während der Aufruf Insert nicht aufruft. Zweitens ist ihr Verhalten anders, wenn Sie diese Methoden aufrufen und ein Element zum Cache hinzufügen, das bereits dort gespeichert ist. Die Methode Einfügen ersetzt das Element, während die Methode Hinzufügen fehlschlägt. [Hervorhebung meins]
Der zweite Teil ist einfach. Keine Frage.
Aber warum sollte es mit dem ersten Teil ein Objekt zurückgeben, das das zwischengespeicherte Element darstellt? Wenn ich versuche, ein Objekt zum Cache hinzuzufügen, weiß ich bereits, was dieses Element ist?
Ich verstehe es nicht. Was ist der Grund dafür?
Das macht was Sinn und was ich ursprünglich vermutet ... es ist möglich, den Wert eines Schlüssels zu überschreiben und der alte Wert wird zurückgegeben. – kitsune
Auf dem ursprünglichen Poster ist dies eine einfache Möglichkeit zu überprüfen, ob ein zwischengespeichertes Objekt aktualisiert wurde oder nicht ... – kitsune
Sorry, ich fand @ kitsune Kommentare verwirrend. Add() wird _override_ den Wert eines Schlüssels nicht (das ist was Insert() tut). Stattdessen gibt Add() entweder a) den zwischengespeicherten Wert zurück, der diesen Schlüssel bereits verwendet, ODER b) null, wenn dort nichts war. Für (a) wird der Wert, den Sie hinzufügen wollten, verworfen. – mrcrowl