Ich habe versucht, eine Methode aus Selbst Methode Wörterbuch auf ein anderes Objekt Methode Wörterbuch während der Laufzeit hinzuzufügen, aber ich war nicht erfolgreich, ich bin versucht zu tun Wie kann ich Methoden von Method Dictionary zu anothor in einer richtigen Weise hinzufügen?, wie ich Methoden Methode Wörterbuch hinzufügen können
Antwort
Dies ist eigentlich eine großartige Übung für das Lernen, dass alles ein Objekt in Smalltalk ist :) Die Methoden im MethodDictionary sind einfach Instanzen von CompiledMethods, die auf viele Arten verwendet werden können. Dh Klassen zur Laufzeit zu manipulieren, eine Art zu reflektieren Programmierung.
Wie für Ihre Frage gibt es nur einen kleinen Fehler in Ihrem Code. Anstatt methodDict mit dem methodDictionary-Accessor zu verwenden, sollte es gut funktionieren. Auf methodDict sollte nicht direkt zugegriffen werden.
Hier ist ein kleiner Spielplatz, den Sie in Ihrem Pharo-Bild ausführen können. Ersetzen Sie einfach ClassA und B durch Ihren jeweiligen. Danach werden Sie sehen, dass die kopierten Methoden erhalten bleiben und beim Durchsuchen von ClassB sichtbar bleiben.
"list methods of ClassA and ClassB"
Transcript open; clear.
Transcript show: '**ClassA methodDictionary:', String crlf.
ClassA methodDictionary associationsDo:
[:assoc | Transcript show: assoc value asString, String crlf].
Transcript show: '**ClassB methodDictionary (Before):', String crlf.
ClassB methodDictionary associationsDo:
[:assoc | Transcript show: assoc value asString, String crlf].
"Transfer all methods of ClassA to ClassB"
ClassA methodDictionary associationsDo:
[:assoc | ClassB methodDictionary at: assoc key put: assoc value].
"again .. list methods of ClassB"
Transcript show: '**ClassB methodDictionary (After):', String crlf.
ClassB methodDictionary associationsDo:
[:assoc | Transcript show: assoc value asString, String crlf].
- 1. C# Erweiterung Methode - Hinzufügen einer void Methoden
- 2. Eclipse Methode "Hinzufügen nicht implementierter Methoden"
- 3. Alternative Methoden zum Hinzufügen mehrerer Benutzereingaben zum Wörterbuch?
- 4. Methoden hinzufügen oder Methoden nicht zur Schnittstelle hinzufügen?
- 5. Wörterbuch ContainsKey Methode
- 6. Wie erstelle ich ein Wörterbuch von Methoden in Python
- 7. ein Wörterbuch ein Wörterbuch hinzufügen
- 8. Wörterbuch hinzufügen, um eingebettete Wörterbuch
- 9. Wie Methoden den Quellcode mit ASTRWrite hinzufügen?
- 10. Python Wörterbuch Verständnis vor der Ausführung Methoden
- 11. SQLAlchemy - Können Sie dem Abfrageobjekt benutzerdefinierte Methoden hinzufügen?
- 12. Wie können Schlüssel im Wörterbuch aktualisiert werden?
- 13. Wie können Methoden für jQuery-DOM-Variablen wiederverwendet werden?
- 14. Wie kann ich neue Methoden zu Iterator hinzufügen?
- 15. C# Wörterbuch speichern Aktion/Methode
- 16. Wie Methoden dynamisch zu einer Klasse hinzufügen?
- 17. hinzufügen Elemente Wörterbuch Werte
- 18. Bewährte Methode zum Hinzufügen von geschützten Methoden zum Komponententest?
- 19. hinzufügen Methoden zur Burg DictionaryAdapterFactory Schnittstelle
- 20. Hinzufügen von Methoden in Sammlungen
- 21. Hinzufügen zum Wörterbuch
- 22. Python-Wörterbuch-Update-Methode
- 23. Wie können mehrere pipe() Methoden verkettet werden?
- 24. Wie können bestimmte Methoden im Vorfeld argumentieren?
- 25. Wie können Klassen Methoden zueinander aufrufen?
- 26. Die beste Methode zum Hinzufügen von Anmerkungen zu geerbten Methoden
- 27. Linq Methoden hinzufügen vs gespeicherte Prozedur hinzufügen
- 28. Aufrufen von void-Methoden aus der main-Methode, Argumente in void-Methoden können nicht übergeben werden
- 29. Wie kann ich neue Wörter im Wörterbuch hinzufügen?
- 30. React-Prospekt: Wie können GeoJson-Methoden wie resetStyle aufgerufen werden?
"aber ich habe es nicht geschafft" .... genau was ist falsch gelaufen? Fehlermeldung? Fehlerhafte Ergebnisse? In welchem Kontext nennst du das? Sind Sie in einer Instanzmethode? Klassenmethode? Sie haben auch Fehler. Es gibt keinen 'methodDic' Selektor. – lurker
Ich bekomme Fehlermeldung => "Fehler: primSize: fehlgeschlagen". Ich habe versucht, eine Instanz Methode zu seiner Klasse hinzuzufügen methodDictionary – haitham
In welchem Kontext rufen Sie dies an? Worauf bezieht sich "Selbst"? – lurker