Ich habe ein Wörterbuch mit string
Schlüssel, z.B. 123456789
. Jetzt möchte ich an einem anderen Punkt in meiner Anwendung, dass mein Wörterbuch diese Taste nach oben schaut und entweder die Methode selbst ausführt (hinter dem Schlüssel gespeichert) oder irgendwie die Funktion zurückgibt, damit ich manuell Parameter hinzufügen kann. Ist das überhaupt möglich?C# Wörterbuch speichern Aktion/Methode
-2
A
Antwort
3
Klingt nach einer einfachen Aufgabe. (Schließt nicht Plausibilitätsprüfungen)
Dictionary<string,Action<object>> dict;
public Action<object> GetFunction(string key)
{
return dict[key];
}
public void CallFunction(string key, object parameter)
{
dict[key](parameter);
}
1
Sie benötigen einen dictionary<string, Action>
zu erstellen, das für keine Parameter wäre.
z.B.
static class MyActions {
static Dictionary<string,Action> wibble = new Dictionary<string,Action>();
}
Ich habe statische verwendet, ist es nicht notwendig, wenn Sie die Referenz um/Reference übergeben können.
dann Action ...
MyActions.wibble["123456789"] =() => { // do action };
oder eine Referenz kein Parameter Methode
MyActions.wibble["123456789"] =() => MyMethod;
dann zu nennen;
MyActions.wibble["123456789"]()
Unter der Annahme, der Schlüssel vorhanden ist, können Sie versuchen, oder sogar MyActions.wibble["123456789"]?.Invoke()
Wenn Sie Parameter benötigen, machen das Wörterbuch vom Typ Action<T>
oder Action<T1, T2>
usw. auf der Anzahl von Parametern abhängig.
zB wibble = new Dictionary<string,Action<int>>()
und dann wibble["123456789"] = x => {action with x}
und wibble["123456789"](42)
Verwandte Themen
- 1. C# Speichern von Funktionen in einem Wörterbuch
- 2. Coredata Beziehung, speichern Wörterbuch
- 3. C# Wörterbuch Leistung
- 4. Speichern Wörterbuch von numpy Arrays
- 5. speichern Wörterbuch in NSUserDefaults Swift
- 6. Studentendaten im Wörterbuch speichern - Python
- 7. Tweets im Python-Wörterbuch speichern
- 8. C# - JSON Serialisierung von Wörterbuch
- 9. Delphi Wörterbuch Speichern/Laden. TDictionary nicht serialisierbar?
- 10. Ändern C# -Wörterbuch Wert
- 11. C# -Wörterbuch, 2 Werte
- 12. C# REST-Wörterbuch DTO
- 13. C# Singleton Wörterbuch Klasse
- 14. Convert Json Wörterbuch C#
- 15. C# - Textdatei zum Wörterbuch
- 16. C# Wörterbuch HashSet
- 17. C# rein funktionales Wörterbuch
- 18. C# ein Wörterbuch Lambdas
- 19. C# Wörterbuch mit ReaderWriterLockSlim
- 20. einer Liste Wörterbuch C#
- 21. C# -Wörterbuch in TypeScript?
- 22. Einfaches Wörterbuch in C++
- 23. C# Tuple-Wörterbuch
- 24. C++ widersprochen Wörterbuch-Programm
- 25. Autocomplete mit C# Wörterbuch
- 26. C# Serialisieren Wörterbuch JSON
- 27. Einfachste Möglichkeit, Alphabet im Wörterbuch in C#
- 28. Excel VBA-Wörterbuch Speichern und Abrufen
- 29. Kann geparste Elemente nicht als Wörterbuch speichern
- 30. So speichern Sie Bilddaten in einem Wörterbuch
Ja. Warum wäre es nicht möglich? – CalC
Ja, eigentlich ganz einfach. Sie können den Typ des Werts für einen beliebigen Delegaten festlegen (z. B. "Aktion", "Prädikat" usw.). –
Warum wäre es nicht möglich, die Schwerkraft zu deaktivieren? @ Cal279 – John