1
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;
        }
    }

我知道答案很简单,我似乎无法弄清楚我做错了什么。

我正在尝试将温度传递给摄氏度方法。

4

4 回答 4

1

将您的方法标记为静态:

public static int Celsius(int t)
于 2013-01-18T14:46:51.580 回答
0

问题是该Celsius方法不是静态的,例如Main.

你可以解决这两种方法。

制作Celsius静态:

public static int Celsius(int t)

创建一个实例,Program然后调用Celsius

var program = new Program();   
program.Celsius(temp);
于 2013-01-18T14:47:10.323 回答
0

尝试使用static您的Celcuis方法。如果你想用你的调用者方法调用同一个类中的一个方法,并且如果你想直接调用你应该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);
}
于 2013-01-18T14:47:43.317 回答
0

一种可能性是使摄氏度方法静态public static int Celsius(int t)
另一个,是创建一个新实例Program并调用Celsius它:

new Program().Celsius(temp);
于 2013-01-18T14:49:28.243 回答