Comment appeler une tâche non statique dans une méthode statick sans utiliser de classe

la programmation


Salut les gars,

je me demande s’il existe une solution pour appeler une tâche non statique dans une méthode statique, par exemple c’est ma tâche non statique

C#
public async Task login(string user, string password)
        {

        }

et c’est ma méthode statique

C#
public static void checker(string email, string password)
       {
           while (true)
           {
               login(email, password);
           }
       }

mais on ne peut pas l’appeler et je ne veux pas utiliser de classes pour eux.

Ce que j’ai essayé :

…………………………………………………………

Solution 1

Vous pouvez le faire en utilisant un objet global ou un objet local dans la méthode statique.

Mais comme je l’ai lu, C# peut également démarrer un thread sur une méthode d’instance. Lis le Documentation Microsoft.

PS : en répondant à ta question, j’ai appris un peu 🙂

Solution 2

Non, pas directement.
Un membre non statique a toujours besoin d’une instance d’objet avec laquelle travailler car il est sous-entendu qu’il peut toucher les données d’instance. et cela serait impossible sans la référence d’objet.

Cela fonctionne dans l’exemple fourni par KarstenK car la méthode membre est enveloppée dans un délégué.
C’est ce que vous pourriez faire : laisser passer les délégués.
Mais vous devrez quand même les transmettre d’une manière ou d’une autre, vous ne pouvez pas simplement « appeler » une méthode d’instance aléatoire sans créer de délégué. Sauf si vous utilisez un objet global.

Mais honnêtement, dans des cas comme celui-ci, vos problèmes sont le signe que vous essayez de résoudre le mauvais problème. C’est probablement un signe que votre méthode de « connexion » ne doit pas être une méthode d’instance. Ou si cela est vraiment nécessaire, vous ne devriez pas essayer d’éviter d’utiliser l’instance.

コメント

タイトルとURLをコピーしました