如何在c#中调用方法?
我需要调用一个方法,然后打印它,现在当输入正确的温度时,我得到.NaN作为输出如何在c#中调用方法?,c#,C#,我需要调用一个方法,然后打印它,现在当输入正确的温度时,我得到.NaN作为输出 using System; using System.Security.Cryptography.X509Certificates; namespace Bastun2 { class Pogram { public static void Main(string[] args) { double temperatureF = double.
using System;
using System.Security.Cryptography.X509Certificates;
namespace Bastun2
{
class Pogram
{
public static void Main(string[] args)
{
double temperatureF = double.NaN;
double temperatureC = double.NaN;
string input = string.Empty;
bool inputIsOkay = false;
while (!inputIsOkay) //Tells you to repeat until input is true
{
Console.WriteLine("Enter temperature in numbers."); //Asks for temperature
input = Console.ReadLine(); //Input temperature
if (!double.TryParse(input, out temperatureF)) //Prevents you for using letters
{
Console.WriteLine($"'{input}' is not a valid input. Use numbers and , not ."); //Tells you not to use letter or "."
}
else if (temperatureF < 163.4)//Repeat if temperature is under 163.4
{
//temperatureC = (temperatureF - 32) * 5 / 9; //Converts Farneheight to Celcius
Console.WriteLine($"Temperature is to low, enter a higher temperature."); //Tells you that temperature is to low and asks you to input a higher temperature
}
else if (temperatureF > 170.6)//Repeat if temperature is to high
{
//temperatureC = (temperatureF - 32) * 5 / 9; //Converts Farneheight to Celcius
Console.WriteLine($"Temperature is to high, enter a lower temperature.");//Tells you that temperature is to high and asks you to input a lower temperature
}
else
{
inputIsOkay = true; //kick you out of the loop if input is true
}
}
//temperatureC = (temperatureF - 32) * 5 / 9; //Converts Farneheight to Celcius
//Console.ReadLine(calculateC);
Console.WriteLine($"{temperatureC}°C, temperature is within acceptable parameters");//prints C and tell you that temperature is acceptable
}
public static double CToF(double temperatureF, double temperatureC)
{
temperatureC = (temperatureF - 32) * 5 / 9;
return temperatureC;
}
}
}
使用系统;
使用System.Security.Cryptography.X509证书;
名称空间Bastun2
{
类图
{
公共静态void Main(字符串[]args)
{
双温度f=double.NaN;
双温c=double.NaN;
字符串输入=string.Empty;
bool-inputIsOkay=false;
while(!inputIsOkay)//告诉您重复,直到输入为真
{
Console.WriteLine(“以数字形式输入温度”);//询问温度
input=Console.ReadLine();//输入温度
如果(!double.TryParse(输入,输出温度))//阻止您使用字母
{
Console.WriteLine($“{input}”不是有效的输入。请使用数字和,而不是“);//告诉您不要使用字母或”
}
else if(temperatureF<163.4)//如果温度低于163.4,则重复此操作
{
//temperatureC=(temperatureF-32)*5/9;//将法尔内海转换为塞尔修斯
Console.WriteLine($“温度过低,请输入更高的温度。”);//告诉您温度过低,并要求您输入更高的温度
}
else if(temperatureF>170.6)//如果温度过高,则重复此操作
{
//temperatureC=(temperatureF-32)*5/9;//将法尔内海转换为塞尔修斯
Console.WriteLine($“温度过高,请输入较低的温度。”);//告诉您温度过高,并要求您输入较低的温度
}
其他的
{
inputIsOkay=true;//如果输入为true,则将您踢出循环
}
}
//temperatureC=(temperatureF-32)*5/9;//将法尔内海转换为塞尔修斯
//Console.ReadLine(calculateC);
Console.WriteLine($“{temperatureC}°C,温度在可接受的参数范围内”);//打印C并告诉您温度是可接受的
}
公共静态双CToF(双温EF、双温EC)
{
温度c=(温度f-32)*5/9;
返回温度c;
}
}
}
根据您对原文的回复,我可以从一开始就看到一个明显的问题。您从未设置temperatureC变量的值,这就是为什么在打印输出时总是得到NaN的原因
您已经通过调用许多方法来调用它们,例如Console.WriteLine(…)
,等等
您只需在while
循环下的主方法底部执行此操作:
temperatureC=CToF(temperatureF,temperatureC);
然后输出temperatureC
的值,就像您使用的:
Console.WriteLine($“{temperatureC}°C,温度在可接受的参数范围内”);
另一个提高代码效率和可读性的小建议是更改CToF方法,只需执行以下操作:
公共静态双CToF(双温度)
{
返回(温度F-32)*5/9;
}
如果您决定接受改进的想法,那么您可以这样调用该方法:
temperatureC=CToF(temperatureF);
您在发布的代码中调用了各种方法。你是什么意思?我想在Console.Writeline中调用CToF,以便在Writeline中获取temperatureC的值。也许我对什么是什么有点困惑,我对这个很陌生是的,你是Console.WriteLine(…)
正在调用一个方法。噢,不知道作为一个方法计算,已经改变了我的第一反应,我如何在Console WriteLine中调用CToF?Console.WriteLine(CToF(tempF,tempC))代码>您的CToF()方法实际上应该只有第一个参数。计算时不需要C值。它只是返回它。