Maison >développement back-end >C++ >Pourquoi « Une référence d'objet est requise » se produit-il lors de l'appel de méthodes non statiques à partir d'une méthode statique en C# ?
En C#, l'erreur "une référence d'objet est requis pour le champ, la méthode ou la propriété non statique..." se produit lors de la tentative d'accès à un membre non statique à partir d'une méthode statique. Cette erreur se produit en raison de l'incapacité des méthodes statiques à accéder aux données spécifiques à l'instance.
Dans l'extrait de code fourni, le problème survient au sein de la méthode "Main", qui est déclarée statique, tandis que "volteado" et Les méthodes "siprimo" sont non statiques. Pour résoudre cette erreur, les méthodes "siprimo" et "volteado" doivent être déclarées statiques. En ajoutant le mot-clé "static", ces méthodes sont accessibles directement dans la méthode statique "Main". Voici le code corrigé :
namespace ConsoleApplication1 { class Program { static void Main(string[] args) { Console.Write("Write a number: "); long a = Convert.ToInt64(Console.ReadLine()); // a is the number given by the user long av = volteado(a); // av is "a" but swapped if (siprimo(a) == false && siprimo(av) == false) Console.WriteLine("Both original and swapped numbers are prime."); else Console.WriteLine("One of the numbers isn't prime."); Console.ReadLine(); } private static bool siprimo(long a) // Declare siprimo as static { // Evaluate if the received number is prime bool sp = true; for (long k = 2; k <= a / 2; k++) if (a % k == 0) sp = false; return sp; } private static long volteado(long a) // Declare volteado as static { // Swap the received number long v = 0; while (a > 0) { v = 10 * v + a % 10; a /= 10; } return v; } } }
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!