【问题标题】:C# Console.WriteLine is not called from a methodC# Console.WriteLine 不是从方法调用的
【发布时间】:2017-02-26 20:00:23
【问题描述】:

我刚刚开始学习 C#。并且遇到了一个问题: 当我在 Main 方法中使用 Console.WriteLine 时,它​​工作得很好。但是,当我尝试将代码分解为方法时,WriteLine 不会返回任何内容。 (我使用 Visual Studio 构建和编译项目)。

任务是根据每月的资本化计算一个人在存入资金时最终会得到的金额。我有点怀疑我只是搞砸了一些琐碎的事情,但仍然希望得到解释:) 谢谢

没有方法的代码:

using System;

class Program
{
    static void Main()
    {
        //User input
        Console.WriteLine("Enter the initial amount, percentage, and deposit time (months)");
        string userInput = Console.ReadLine();

        //Separating the input string into substrings
        string[] separated = userInput.Split(' ');

        //Getting the main variables
        double sum1 = double.Parse(separated[0]);
        double oneMonthPercentage = double.Parse(separated[1]) / 1200; //find a montly amount in percent = amount / 12 month / 100 
        double months = double.Parse(separated[2]);
        double initialSum = sum1;


        //Calculation of the final ammount
        for (int i = 1; i <= months; i++)
        {
            sum1 += sum1 * oneMonthPercentage;
        }

        //Output
        Console.WriteLine("Ammount: " + initialSum);
        Console.WriteLine("Percentage: " + oneMonthPercentage * 1200 + "%");
        Console.WriteLine("Time: " + months);
        Console.WriteLine("Final amount: " + Math.Round(sum1, 2));

    }
}

输出 - no_methods

带有方法的代码(WriteLine 不起作用):

using System;

class Program
{ 
    static void Main()
    {
        //User input
        Console.WriteLine("Enter the initial amount, percentage, and deposit time (months)");
        string userInput = Console.ReadLine();
    }

    //Separating string into substrings
    public static string[] SeparateString(string userInput)
    {
        string[] separated = userInput.Split(' ');
        return separated;
    }

    //calculating the final amount at the end of deposit time
    public static double Calculate(string userInput)
    {

        // defining main variables for calculation

        double sum1 = double.Parse(SeparateString(userInput)[0]);
        double oneMonthPercentage = double.Parse(SeparateString(userInput)[1]) / 1200;
        double months = double.Parse(SeparateString(userInput)[2]);
        double initialSum = sum1;

        //calculation as to the formula 
        for (int i = 1; i <= months; i++)
        {
            sum1 += sum1 * oneMonthPercentage;
        }

        //Output
        Console.WriteLine("Ammount: " + initialSum);
        Console.WriteLine("Percentage: " + oneMonthPercentage * 1200 + "%");
        Console.WriteLine("Time: " + months);
        Console.WriteLine("Final amount: " + Math.Round(sum1, 2));

        return sum1;
    }
}

输出 - with_methods

【问题讨论】:

  • 您不会从任何地方调用Calculate。您需要从 Main 方法调用 Calculate。
  • 基本 101 C# 编程:正在运行的代码在到达方法的右大括号时,会返回给调用该方法的人。它不会继续执行下一个方法,然后是下一个。你应该以某种方式驱动你的代码
  • 你需要真正了解更多关于局部变量以及如何调用方法的知识,运行控制台时执行的代码只是main中包含的代码,main中没有调用的任何东西都是无用的
  • Main是一个特殊的函数,它在你运行程序时被系统“神奇地”调用。所有其他功能都没有。您的代码必须调用 Calculate 方法才能运行它

标签: c# methods console.writeline


【解决方案1】:

您需要调用这些方法才能使它们工作。现在你只调用了初始的 WriteLine 和 ReadLine

【讨论】:

    【解决方案2】:

    你没有调用任何方法。你应该调用Calculate() 方法:

    static void Main()
    {
        //User input
        Console.WriteLine("Enter the initial amount, percentage, and deposit time (months)");
        string userInput = Console.ReadLine();
        var result = Calculate(userInput); // call here
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-05-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多