Heim > Backend-Entwicklung > C++ > Warum tritt beim Aufrufen nichtstatischer Methoden aus einer statischen Methode in C# die Fehlermeldung „Eine Objektreferenz ist erforderlich' auf?

Warum tritt beim Aufrufen nichtstatischer Methoden aus einer statischen Methode in C# die Fehlermeldung „Eine Objektreferenz ist erforderlich' auf?

Linda Hamilton
Freigeben: 2025-01-22 17:46:11
Original
540 Leute haben es durchsucht

Why Does

Fehler: „Für das nicht-statische Feld, die nicht-statische Methode oder die Eigenschaft ist ein Objektverweis erforderlich …“

In C# wird der Fehler „ein Objektverweis“ angezeigt ist für das nicht-statische Feld, die nicht-statische Methode oder die nicht-statische Eigenschaft erforderlich …“ tritt auf, wenn versucht wird, über eine statische Methode auf ein nicht-statisches Mitglied zuzugreifen. Dieser Fehler tritt auf, weil statische Methoden nicht auf instanzspezifische Daten zugreifen können.

Im bereitgestellten Codeausschnitt tritt das Problem innerhalb der „Main“-Methode auf, die als statisch deklariert ist, während die „volteado“ und „siprimo“-Methoden sind nicht statisch. Um diesen Fehler zu beheben, müssen die Methoden „siprimo“ und „volteado“ als statisch deklariert werden. Durch Hinzufügen des Schlüsselworts „static“ kann auf diese Methoden direkt innerhalb der statischen Methode „Main“ zugegriffen werden. Hier ist der korrigierte Code:

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;
        }
    }
}
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWarum tritt beim Aufrufen nichtstatischer Methoden aus einer statischen Methode in C# die Fehlermeldung „Eine Objektreferenz ist erforderlich' auf?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage