Visual Studio如何运行我的代码?

时间:2015-02-03 03:47:20

标签: c# visual-studio

我最近决定自学如何编码(使用Microsoft Virtual Academy等免费在线工具),我决定将C#作为我的首发语言。

正如大多数初学者所做的那样,我有一个非常基本的问题,我似乎无法找到答案(可能因为它太简单了)。我正在使用Visual Studio,我只是想知道软件是如何运行我编写的代码的。

这是我的猜测:我相信当我运行代码时,它只会执行“class Program1”中的操作,因为这是代码中的第一个类。一旦它到达该块的末尾,它就没有其他任何东西可以关闭控制台(或者更技术上我在按下ENTER时关闭控制台)。

最初我认为它应该通过“类Program2”运行,但是在尝试它并看到它不能按预期工作后,我被引导相信有任何类功能,就像我想要的那样(除了列出的第一个 - 本例中的Program1)需要调用它。我是否理解VS将如何运行我的代码?我为术语中的任何混淆道歉。提前谢谢!

示例代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Testing
{
    class Program1
    {
        static void Main(string[] args)
        {
            Console.WriteLine("I'm Text!");
            Console.ReadLine();
        }
    }
    class Program2
    {
        static void Main2(string[] args)
        {
            Console.WriteLine("I'm More Text!");
            Console.ReadLine();
        }
    }
}

1 个答案:

答案 0 :(得分:3)

你基本上是正确的。默认情况下,它会尝试查找在启动时执行签名static void Main(string[] args)的方法(返回类型为int和/或也不接受任何参数)。

  

Main方法是C#控制台应用程序或Windows应用程序的入口点。 (库和服务不需要Main方法作为入口点。)。启动应用程序时,Main方法是第一个被调用的方法。

https://msdn.microsoft.com/en-us/library/acy3edy3.aspx

我说"默认情况下#34;因为你确实可以有多个带有该签名的方法(在不同的类中)。如果这样做,则会收到编译器错误

  

错误1程序&#c; ... \ obj \ Debug \ MyProgram.exe'定义了多个入口点:' MyProgram.Program.Main(string [])'。使用/ main编译以指定包含入口点的类型。

在这种情况下,您可以使用编译标志/main来指定执行的开始位置。