C#에서 "개체 참조" 오류 비정적 필드, 메서드 또는 속성에 필요합니다..."는 정적 메서드에서 비정적 멤버에 액세스하려고 할 때 발생합니다. 이 오류는 정적 메서드가 인스턴스별 데이터에 액세스할 수 없기 때문에 발생합니다.
제공된 코드 조각에서 문제는 정적으로 선언된 "Main" 메서드 내에서 발생하는 반면 "volteado" 및 "siprimo" 메소드는 비정적입니다. 이 오류를 해결하려면 "siprimo" 및 "volteado" 메서드를 정적으로 선언해야 합니다. "static" 키워드를 추가하면 정적 "Main" 메서드 내에서 이러한 메서드에 직접 액세스할 수 있습니다. 수정된 코드는 다음과 같습니다.
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; } } }
위 내용은 C#의 정적 메서드에서 비정적 메서드를 호출할 때 '개체 참조가 필요합니다...'가 발생하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!