我是C#的初学者,我正在研究这个程序,包括4个方法,包括Main()。 GetValues()允许用户输入数组,FindAverage()计算数组的平均值,现在我想创建一个应该显示结果的第三个方法'Show()'。 当我在Main()中显示平均值时,我得到了这个工作,但是当我在Show()中显示时,没有任何反应。在测试时,我让Show()显示一个简单的文本行“message”,但是当我运行它时。好像程序跳过Show()并直接进入Main()。你们有什么人可以向我解释发生了什么以及我该怎么办Show()显示它的内容?
谢谢你们!
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace testscores
{
class Program
{
private static int GetValues()
{
string inValue;
int[] score = new int[5];
int total = 0;
for (int i = 0; i < score.Length; i++)
{
Console.Write("Enter Value {0}: ", i + 1);
inValue = Console.ReadLine();
score[i] = Convert.ToInt32(inValue);
}
for (int i = 0; i < score.Length; i++)
{
total += score[i];
}
return total;
}
//FIND AVERAGE
private static double FindAverage()
{
double total = GetValues();
double average = total/5.0;
return average ;
}
//Show
static void Show()
{
Console.WriteLine("message");
return;
}
static void Main()
{
double avg = FindAverage();
Console.WriteLine("The Average is :" + avg);
Console.ReadKey();
}
}
}
答案 0 :(得分:4)
独立exe的入口点已定义为Main(...)
- ,是调用Main
的原因。静态Main
方法(具有各种可用签名)是特殊。
对于其他任何事情:你需要打电话,否则就不会发生。
有关信息,您可以使用多个此类Main
方法,但是您需要明确告诉它哪一个(并且只有一个)是入口点。
答案 1 :(得分:1)
修改Show,使其获取一个参数(要显示的值)并在Main中调用它:
static void Show(double average)
{
Console.WriteLine("The average is: {0}", average);
}
static void Main()
{
double avg = FindAverage();
Show(avg);
Console.ReadKey();
}
答案 2 :(得分:1)
当您运行C#程序时,.Net将调用Main()
方法
它不会调用任何其他方法。
要执行其他方法,您需要从Main()
调用它们(可能是间接的)。
答案 3 :(得分:1)
程序不会运行您键入的所有代码。它们在Main
内执行每个语句,并且每个方法中的每个语句都由 Main
调用。
在Main
方法中,您可以调用程序的其他部分:
在FindAverage
方法中,您可以调用其他部分:
在GetValues
方法中,您不会调用程序的任何其他部分。
在这个链中没有任何地方你专门调用Show
,所以它永远不会被调用。它只是位于.exe文件中,什么都不做。
这称为死代码。这不是什么大问题,但听起来并不是你想要的。
要解决此问题,请将此行添加到代码中的某个位置,无论您希望在程序的流程中运行它,都可以运行:
Show();
答案 4 :(得分:1)
每个程序仅从方法Main
开始。你不能说
程序将从方法Show
开始。将Show
方法调用放在Main
。
另外,对你来说似乎有些新鲜事:
要为方法赋值,请在启动方法时添加它。例如:
static void Show(double value){
}
然后致电:
Show(avg); // Gives the variable "avg" to Show