您不能从静态方法访问非静态成员。(请注意,这Main()是静态的,这是.Net的要求)。通过将static关键字放在siprimo和volteado之前,使它们固定为静态。例如:
static private long volteado(long a)解决方法
我正在用C#创建一个应用程序。它的功能是评估给定是否为质数,以及相同的交换数是否为质数。
当我在Visual Studio中构建解决方案时,它说“非静态字段,方法或属性需要对象引用”。我在使用“ volteado”和“siprimo”方法时遇到了这个问题。
问题出在哪里,我该如何解决?
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.'); elseConsole.WriteLine('One of the numbers isnt prime.'); Console.ReadLine();}private bool siprimo(long a){ // 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 long volteado(long a){ // Swap the received number long v = 0; while (a > 0) {v = 10 * v + a % 10;a /= 10; } return v;} }}