如何解决错误:“非静态字段,方法或属性需要对象引用” [重复]
您不能从静态方法访问非静态成员。(请注意,这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.");
else
Console.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;
}
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。