[英]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.