繁体   English   中英

Visual Studio如何在我的代码中运行?

[英]How does Visual Studio run through my code?

我最近决定自学如何进行编码(使用免费的在线工具,例如Microsoft Virtual Academy),并且已经决定将C#作为我的入门语言。

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

这是我的猜测:我相信当我运行代码时,它只会执行“类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();
        }
    }
}

您本质上是正确的。 默认情况下,它尝试查找具有签名static void Main(string[] args)以在启动时执行(返回类型为int和/或任何参数都不可接受)。

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

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

我之所以说“默认”,是因为您确实可以使用一个以上带有该签名的方法(在不同的类中)。 如果这样做,您会收到编译器错误

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

在这种情况下,可以使用编译标志/main来指定应从何处开始执行。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM