C # помогите, перегружая метод - PullRequest
0 голосов
/ 25 ноября 2018

У меня есть еще одна вещь, которую нужно добавить в мое задание, прежде чем я закончу.

Это часть моего кода:

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) и сделать это случайным образом доэто число входит в метод конвертации по Фаренгейту в Цельсий.Я предполагаю, что сгенерированный numbet должен быть примерно 140-195, потому что пользователю нужно вводить ноль до тех пор, пока сгенерированное число не станет равным 73-77 после преобразования в градусы Цельсия!

Я знаю, как генерировать случайное число, ия думаю, что понимаю, что делает перегрузка, но я полностью потерян, как это сделать ...

Ответы [ 3 ]

0 голосов
/ 25 ноября 2018

Помимо других возможных проблем: перегрузка метода не имеет ничего общего с конкретными значениями параметров (если вы не используете разные типы, например, short, int, long).В вашем случае: «если значение параметра равно 0, тогда вернуть случайное число» не является чем-то решаемым путем перегрузки.

Теперь после прочтения вашего комментария к вопросу;Вы можете создать метод, который не принимает никаких параметров static decimal FahrToCels(), и вызывать его, если вы читаете 0 из ввода.Этот новый метод будет генерировать случайное значение и преобразовывать его.

Личное мнение: я не буду комментировать, насколько разумно это назначение.Более стандартным случаем будет использование оператора if для определения, является ли ввод 0, и, если это так, генерирует случайное значение и передает его в метод, который у вас уже есть.Но я могу что-то здесь упустить.

0 голосов
/ 25 ноября 2018

Идея состояла бы в том, чтобы создать функцию внутри (или более) метода внутри класса, который не принимает аргументов.Больше ничего особенного не требуется.Когда вы хотите вызвать FahrToCels(), у вас есть возможность вызывать любой метод на основе типа и количества аргументов.

    static decimal FahrToCels ()
    {
        // Your code here
    }
0 голосов
/ 25 ноября 2018

Создайте новый метод, подобный этому

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

Это решает ваше требование использовать перегрузку метода, хотя я нахожу это немного странным.

...