C# модули числовые входы

Я не был уверен, как я должен назвать свою проблему. Я пытаюсь написать программу, которая запрашивает значение свойства. Затем он берет значение и умножает его на 60%, чтобы получить оценочное значение. Например, если акр земли оценивается в 10000 долларов, его оценочная стоимость составляет 6 000 долларов. Налог на имущество составляет 64 цента за каждые 100 долларов оценочной стоимости. Налог за акр земли, оцененный в 6000 долларов, составит 38,40 долларов. Я должен разработать модульную программу, которая запрашивает фактическую стоимость объекта недвижимости и отображает оценочную стоимость и налог на имущество. Вот что у меня так далеко.

{
    static void Main(string[] args)
    {
        double propertyValue = 0.0;
        double assessTax = 0.0;
        double propertyTax = 0.0;

        getValue(ref propertyValue);
        Tax(ref propertyValue, propertyTax, assessTax);
        showOutput(ref propertyTax, assessTax, propertyValue);

    }///End Main
    static void showOutput(ref double propertyValue, double assessTax, double propertyTax)
    {
        Console.WriteLine("Your Entered Property Value was {0, 10:C}", propertyValue);
        Console.WriteLine("Your Assessment Value is {0, 10:C}", assessTax);
        Console.WriteLine("Your Property Tax is {0, 10:C}", propertyTax);
    }///End showOutput
    static void getValue(ref double propertyValue)
{
    Console.WriteLine("Please Enter Property Value");
    while (!double.TryParse(Console.ReadLine(), out propertyValue))
        Console.WriteLine("Error, Please enter a valid number");
}///End getValue
 static void Tax(ref double propertyValue, double assessTax, double propertyTax)
{
    assessTax = propertyValue * 0.60;
    propertyTax = (assessTax / 100) * 0.64;
}///End Tax

Это моя первая попытка написать что-нибудь в Dreamspark, поэтому я прошу прощения, если ответ очевиден (я вроде как потерян). Я думаю, может быть, мой ввод для значения свойства не сохраняется. Когда я пытаюсь запустить его, я получаю стоимость имущества 0,00 долларов, оценочную стоимость 0,00 долларов и налог на недвижимость 10000 долларов. Будем благодарны за любые прямые ответы или ссылки на руководство, чтобы я мог это исправить самостоятельно.

1 ответ

Решение

Обычно вам не нужно использовать все эти ссылки. Лучше просто вернуть значение в ваших статических методах.

    static void Main(string[] args)
    {
        double propertyValue = 0.0;
        double assessTax = 0.0;
        double propertyTax = 0.0;

        propertyValue = GetValue();
        assessTax = GetAssessTax(propertyValue);
        propertyTax = GetTax(assessTax);

        ShowOutput(propertyValue, assessTax, propertyTax);

        Console.ReadKey(true);

    }

    static void ShowOutput(double propertyValue, double assessTax, double propertyTax)
    {
        Console.WriteLine("Your Entered Property Value was {0, 10:C}", propertyValue);
        Console.WriteLine("Your Assessment Value is {0, 10:C}", assessTax);
        Console.WriteLine("Your Property Tax is {0, 10:C}", propertyTax);
    }

    static double GetValue()
    {
        double propertyValue;

        Console.WriteLine("Please Enter Property Value");
        while (!double.TryParse(Console.ReadLine(), out propertyValue))
            Console.WriteLine("Error, Please enter a valid number");

        return propertyValue;
    }

    static double GetAssessTax(double propertyValue)
    {
        return  propertyValue * 0.60;
    }

    static double GetTax(double assessTax)
    {
        return (assessTax / 100) * 0.64;
    }

РЕДАКТИРОВАТЬ: В вашем методе Tax у вас нет ссылки на аргумент propertyTax, вы не можете изменить значение вне текущего контекста.

Другие вопросы по тегам