Rumah >pembangunan bahagian belakang >C++ >Mengapa 'Rujukan Objek Diperlukan...' Berlaku Apabila Memanggil Kaedah Bukan Statik daripada Kaedah Statik dalam C#?
Dalam C#, ralat "rujukan objek diperlukan untuk medan, kaedah atau sifat bukan statik..." timbul apabila cuba mengakses ahli bukan statik daripada kaedah statik. Ralat ini berlaku disebabkan oleh ketidakupayaan kaedah statik untuk mengakses data khusus contoh.
Dalam coretan kod yang disediakan, isu timbul dalam kaedah "Utama", yang diisytiharkan statik, manakala "volteado" dan Kaedah "siprimo" tidak statik. Untuk menyelesaikan ralat ini, kaedah "siprimo" dan "volteado" mesti diisytiharkan statik. Dengan menambahkan kata kunci "statik", kaedah ini boleh diakses terus dalam kaedah "Utama" statik. Berikut ialah kod yang diperbetulkan:
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; } } }
Atas ialah kandungan terperinci Mengapa 'Rujukan Objek Diperlukan...' Berlaku Apabila Memanggil Kaedah Bukan Statik daripada Kaedah Statik dalam C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!