3 Stimmen

Erstellt Convert.ChangeType() eine Kopie des Objekts oder gibt es eine Referenz des Originalobjekts zurück?

Ich habe diese Daten, die sehr groß sein können, dies könnte ein XML-String, ein Dataset, eine DataTable, eine DataRowCollection sein. Diese Daten werden zusammen mit ihrem Typ an eine generische Methode übergeben.

void GenericMethod(object data, Type t)
{
   var d = Convert.ChangeType(data, t);  
   //einige Aufgaben zu erledigen 
}

Frage: Wenn die Daten 1GB groß sind, erstellt ChangeType dann ein weiteres Objekt mit ebenfalls 1GB? Ich möchte nur sicher sein, wegen des Speicherverbrauchs.

3voto

SLaks Punkte 832502

Convert.ChangeType ruft die IConvertible-Implementierung der Instanz auf, die tun kann, was sie will.

Wenn das übergebene Objekt nicht IConvertible implementiert, wird eine Ausnahme ausgelöst.

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