【发布时间】: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