Je cherche le chemin le plus propre. Je suis tenté d'utiliser les délégués pas sûr cependant.Le moyen le plus propre d'appeler dynamiquement une méthode non statique à partir d'une classe non statique?
0
A
Répondre
1
Êtes-vous après quelque chose comme ça?
class A
{
public int Value;
public int Add(int a) { return a + Value; }
public int Mul(int a) { return a * Value; }
}
class Program
{
static void Main(string[] args)
{
A a = new A();
a.Value = 10;
Func<int, int> f;
f = a.Add;
Console.WriteLine("Add: {0}", f(5));
f = a.Mul;
Console.WriteLine("Mul: {0}", f(5));
}
}
Si vous avez besoin de l'objet, il est appelé à être non liée, comme des pointeurs de fonction membres C++, je ne suis pas sûr que C# soutient que. Vous pouvez toujours utiliser un lambda ou un délégué, cependant:
Func<A,int,int> f = delegate(A o, int i) { return o.Add(i); };
Console.WriteLine("Add: {0}", f(a, 5));
f = (A o, int i) => o.Mul(i);
Console.WriteLine("Mul: {0}", f(a, 5));
0
Vous devrez peut-être ajouter plus de détails. Les délégués sont une bonne option, tout comme la réflexion si vous avez seulement le nom de la méthode, pas un pointeur réel.
+0
Je ne voulais pas être trop précis puisque je suis prêt à accomoder mon code pour l'intégrer dans n'importe quelle solution propre. – jdelator
Questions connexes
- 1. Appel d'une méthode non statique à partir d'une méthode statique en Python
- 2. Service Web statique sur non statique
- 3. Méthode statique C# à partir de l'objet
- 4. java: variable non statique ne peut pas être référencée à partir d'un contexte statique Erreur
- 5. Appeler une méthode non statique côté serveur à partir du client en utilisant JavsScript
- 6. Est-il possible d'obtenir le nom de la classe à partir d'une méthode statique?
- 7. Comment faire référence à la classe externe dans une autre instance d'une classe interne non statique?
- 8. Accès à la valeur d'une classe statique dans une classe statique
- 9. Une référence d'objet est requise pour le champ, la méthode ou la propriété non statique?
- 10. Est-il possible d'appeler une fonction non statique à l'intérieur d'une fonction statique en C#?
- 11. Lorsque créer une méthode statique
- 12. Une référence d'objet est requise pour le champ, la méthode ou la propriété non statique
- 13. Lien vers une bibliothèque statique liée à une bibliothèque statique
- 14. Accès à une méthode statique en C#
- 15. Contrôle statique avec style WS_EX_TRANSPARENT non repeint
- 16. Déterminer si une méthode existe dans une classe statique
- 17. Un moyen plus court d'accéder au nom de la classe dans la méthode statique?
- 18. Quelle classe a appelé ma méthode statique?
- 19. Comment concevoir une classe statique?
- 20. Grille personnalisée - lier à l'aide d'une fonction non statique
- 21. C++ MI modèle statique - méthode statique disapears à rejoindre
- 22. refactorisation méthode/champ statique statique pour les tests
- 23. Ecriture d'un cookie à partir d'une classe statique
- 24. déclencher des événements dans une classe statique
- 25. Fonction d'appel à partir de DLL avec un chemin non-statique
- 26. Accès à la méthode statique personnalisée PHP
- 27. C# Quelle est la différence entre la classe statique et non statique (je parle de la classe elle-même pas le champ)
- 28. Méthode générique dans une classe non générique?
- 29. Est-il possible de détecter le contexte de classe dans une méthode statique héritée?
- 30. WPF: Liaison avec paramètre non statique? (newbie question)
Nous avons besoin de plus d'informations sur ce que vous essayez de faire. S'il vous plaît donner un exemple. –
Je ne voulais pas être trop précis puisque je suis prêt à accomoder mon code pour l'adapter à n'importe quelle solution propre. Je veux juste une solution propre avant de commencer à coder quoi que ce soit. – jdelator
Oui, mais nous avons très peu d'idée de ce que vous essayez vraiment de faire. Quelles informations avez-vous? Avez-vous une instance et le nom de la méthode? Qu'en est-il des paramètres? –