Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# C帮助,重载方法_C#_Methods_Overloading - Fatal编程技术网

C# C帮助,重载方法

C# C帮助,重载方法,c#,methods,overloading,C#,Methods,Overloading,在我完成作业之前,我还有最后一件事要补充 这是我代码的一部分: static decimal FahrToCels(int fahrenheit) //Metod för konvertering av Fahrenheit(F) till Celsius(C) { decimal celsius = (decimal)((fahrenheit - 32) * 5) / 9; // Matematisk uträkning för F till C. return Math.R

在我完成作业之前,我还有最后一件事要补充

这是我代码的一部分:

static decimal FahrToCels(int fahrenheit) //Metod för konvertering av Fahrenheit(F) till Celsius(C)
{
    decimal celsius = (decimal)((fahrenheit - 32) * 5) / 9; // Matematisk uträkning för F till C. 
    return Math.Round (celsius, 1); //Lagrar ett decimal tal avrundat till 1 decimal och lagrar i celsius
}

static void Main(string[] args)
{
    Console.Write("Vänligen ange temperatur till bastun och tryck enter: "); //skriver ut meddelande

    do
        int fahr = int.Parse(Console.ReadLine()); // Omvandlar string och lagrar användarens inmatning i en int fahrenheit
        decimal celsius = FahrToCels(fahr); // Metoden FahrToCels konverterar inmatad temperatur till celsius och lagrar i decimal celsius
可以看出,我创建了一个方法,在用户被告知以华氏度输入度数后使用。该方法将输入的数字转换为摄氏度

现在我要做的最后一件事是重载这个方法,让用户可以输入零0,然后在这个数字进入华氏温度到摄氏温度转换方法之前随机生成一个数字。我猜生成的数字必须介于140-195之间,因为用户需要输入零,直到转换为摄氏度后生成的数字等于73-77


我知道如何生成一个随机数,我想我理解重载的作用,但我完全不知道如何生成这个随机数…

创建一个这样的新方法

    static decimal FahrToCels(string value) //note value is of type 'string'
    {
        //your implementation goes here, check if value is 'zero'
    }

这就解决了使用方法重载的问题,尽管我觉得有点奇怪。

除了其他可能的问题之外:重载方法与特定的参数值无关,除非您使用不同的类型,例如short、int、long。在您的例子中:如果参数值是0,那么返回一个随机数不是通过重载可以解决的

现在,在阅读了你对这个问题的评论之后;您可以创建一个不接受任何参数静态十进制FahrToCels的方法,并在从输入读取0时调用该方法。然后,这个新方法将生成一个随机值并将其转换


个人意见:我不会评论这个任务有多合理。更标准的情况是使用if语句来确定输入是否为0,如果是,则生成一个随机值并将其传递给已有的方法。但是我可能遗漏了一些东西。

一个想法是在类内的方法下或方法上创建一个不带参数的函数。没有其他特殊要求。当您想要调用FahrToCels时,您可以根据参数的类型和数量选择调用任一方法

    static decimal FahrToCels ()
    {
        // Your code here
    }

对于像温度这样的连续量,float是比int或double更好的选择。另外,请给我们一个“输入零”的例子。“你知道零度是一个非常有效的温度,对吧?”杜尔希格尔这是一个学校作业,我觉得有点奇怪。我的代码工作得很完美,并且做了它应该做的事情。但任务最不希望我做的事情是,用户还应该能够输入一个零来随机生成一个温度。如果发生这种情况,则不应向方法发送任何值,这可以通过方法重载来解决,因此我猜如果用户输入数字0,则应生成一个随机温度。我的代码的其余部分由一些if和else组成,用于让用户输入正确的温度。@DourHighArch设置int变量的原因是赋值要求它首先存储为int。出于某种原因。即使我是一个编程新手,我也知道这个任务很奇怪。。。。是的,制作一个不带任何参数的方法是它告诉我我可以做的。但我该如何创造这个呢?我知道如何生成随机数,但当用户输入0时,如何调用该方法?因为到目前为止,当输入零时,转换为-17,8摄氏度。如果我使用If语句,我会把它放在哪里?因为现在,当输入任何给定的数字时,它会自动使用转换方法。你需要一个if语句,这就是我质疑赋值的原因。所以它会是这样的:iffahr==0{}或者{}是的,这似乎是一个解决方案。但是我如何首先让它生成随机数,然后继续使用对流方法呢?我需要做一个新的方法,它有一个数字生成器和转换器,我想?一种可能是:生成随机数,或者使用一个额外的方法,或者不使用一个额外的方法,并使用它作为调用另一个FahrToCels方法的参数。然后把你从中得到的东西还给我。