[英]An object reference is required for the non-static field, method, or property ConsoleApplication5.Program.myFirst(int, int)
[英]Error 1 An object reference is required for the non-static field, method, or property 'temperature_conversion.Program.Celsius(int)'
class Program
{
static void Main(string[] args)
{
int temp;
string choice;
int finalTemp;
Console.WriteLine("Enter a temperature");
temp = Convert.ToInt16(Console.ReadLine());
Console.WriteLine("Convert to Celsius or Fahrenheit?" + "\n" +"Enter c or f");
choice = Console.ReadLine();
if (choice == "c")
{
Celsius(temp);
}
Console.ReadLine();//to keep open
} //Main End
public int Celsius(int t)
{
int c;
c = 5 / 9 * (t - 32);
return c;
}
}
我知道答案很简单,我似乎无法弄清楚自己做错了什么。
我正在尝试将温度传递给Celsius方法。
将您的方法标记为静态:
public static int Celsius(int t)
问题是Celsius
方法不是像Main
一样是Static的。
您可以解决这两种方法。
将Celsius
设为静态:
public static int Celsius(int t)
创建该Program
的实例,然后调用Celsius
:
var program = new Program();
program.Celsius(temp);
尝试使用Celcuis
方法的static
方法。 如果要与调用方方法调用同一类中的方法,并且要直接调用,则应在方法上使用static
关键字。 像这样;
static public int Celsius(int t)
{
int c;
c = 5 / 9 * (t - 32);
return c;
}
对于其他选项,您可以创建一个类实例,然后在if条件中调用您的方法。 像这样;
if ( choice == "c" )
{
Program p = new Program();
p.Celsius(temp);
}
一种可能是使Celsius方法成为static public static int Celsius(int t)
。
另一个方法是创建一个新的Program
实例,并在其上调用Celsius
:
new Program().Celsius(temp);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.