Ich weiß, dass .NET String-Klasse ein solches Verhalten verwendet, aber ich kann keine Implementierung finden, und ich weiß nicht, wie das zu benennen ist Verhalten. Irgendwelche Ideen werden hilfreich sein.Methode, die neues Objekt des gleichen Typs erstellt, ersetzt das ursprüngliche Objekt durch das neue
Antwort
Die String-Klasse wird als Immutable bezeichnet.
Ein stark vereinfachtes Beispiel könnte wie folgt aussehen:
public sealed class MyValue
{
public MyValue(int value)
{
this.Value = value;
}
public int Value { get; private set }
public MyValue Add(int value)
{
return new MyValue(this.Value + value);
}
}
Das Objekt ist in diesem Zusammenhang nicht geändert werden kann. Wenn Sie ein anderes MyValue-Objekt mit dem aktuellen Wert zu einem anderen Wert benötigen, erhalten Sie ein neues Objekt.
Ich weiß das, aber in Wikipedia Artikel habe ich keinen Ansatz zur Implementierung solcher Methoden für unveränderliche Objekte gefunden. Wie kann ich das ursprüngliche Objekt durch eine neu erstellte Methode ersetzen? Sollte ich Zeiger verwenden? –
Aktualisiert mit Beispiel. –
Danke das ist nützlich! –
- 1. EasyMock - Frühling das ursprüngliche Objekt nimmt nicht das nachgeahmten Objekt
- 2. Polymorphism - bauen ein Objekt des gleichen Typs
- 3. Wird -replaceObjectAtIndex: withObject: of NSMutableArray das alte Objekt freigeben, das durch ein neues ersetzt wurde?
- 4. Zugriff auf das ursprüngliche Objekt in jedem
- 5. eine Kopie eines JavaScript-Objekt ändern verursachen das ursprüngliche Objekt
- 6. Wie ein neues Objekt im Geltungsbereich erstellen und Methodenaufrufe der Ansicht verwenden das neue Objekt?
- 7. Erste das nächste Element des gleichen Typs
- 8. Konnte nicht das Objekt des Typs ‚System.Double‘ werfen
- 9. pandas.series.copy erstellt kein neues Objekt
- 10. Konnte nicht das Objekt des Typs ‚System.Linq.Expressions.UnaryExpression‘ werfen geben ‚System.Linq.Expressions.MemberExpression‘
- 11. So entpacken Sie das ursprüngliche Objekt aus einem dynamischen Proxy
- 12. nsmutableArray Ersetzen des Elements durch das zuletzt hinzugefügte Objekt
- 13. (Neues Objekt()). Methode() in VB.net
- 14. list.add scheint einen Verweis auf das ursprüngliche Objekt hinzuzufügen?
- 15. Verwenden Sie das Objekt, das die Methode aufruft
- 16. Heapzuordnung wenn durch ref vorbei und Instanziieren neues Objekt
- 17. Wenn ein parzellierbares Objekt eine Absicht durchläuft, wird es mit Verweisen auf das ursprüngliche Objekt aktualisiert?
- 18. Ist das Übergeben von Objekt an Methode effizienter als das Aufrufen der Methode nach Objekt?
- 19. $ watch over Objekt neue Eigenschaften dynamisch erstellt
- 20. Test, ob das Objekt richtig erstellt wurde
- 21. django createview wie man das Objekt, das erstellt wird,
- 22. Objekt des Typs 'Generator' hat keine len()
- 23. Die beste Methode, um ein Objekt mit einem anderen Objekt desselben Typs in .Net zu aktualisieren?
- 24. Kann Objekt des Typs in System.DirectoryServices.AccountManagement.GroupPrincipal
- 25. Objekt des abgeleiteten Typs im Basisobjekt erstellen
- 26. Schleife durch jedes neue Objekt von Constructor
- 27. Kann ich ein Objekt desselben Typs erstellen?
- 28. Wie gehe ich durch das JSON-Objekt
- 29. Fehlermeldung "Kann Objekt des Typs nicht umwandeln"
- 30. Wie kopiert man ein Objekt und erstellt ein neues Objekt mit einem vorhandenen Json-Objekt?
unveränderlich ... – mshsayem