C# 如何编译和运行单个类文件cs文件?

C# 如何编译和运行单个类文件cs文件?,c#,visual-studio,C#,Visual Studio,抱歉,如果这是琐碎的,我是Visual Studio的新手,我有一个项目,其中包含多个类文件.cs文件,如何单独运行每个类文件。每当我去调试时,它只选择一个.cs文件。谢谢 编辑:来自使用netbeans的java后台,包中可能包含多个.java文件,只要每个.java文件都有一个主方法,就可以单独编译和运行它们。Visual Studio中是否有类似的功能?通常,除非将单个CS文件添加到单独的项目中,否则无法生成该文件。VisualStudio自动生成项目中的所有CS文件 如果您只想生成一个文

抱歉,如果这是琐碎的,我是Visual Studio的新手,我有一个项目,其中包含多个类文件.cs文件,如何单独运行每个类文件。每当我去调试时,它只选择一个.cs文件。谢谢


编辑:来自使用netbeans的java后台,包中可能包含多个.java文件,只要每个.java文件都有一个主方法,就可以单独编译和运行它们。Visual Studio中是否有类似的功能?

通常,除非将单个CS文件添加到单独的项目中,否则无法生成该文件。VisualStudio自动生成项目中的所有CS文件

如果您只想生成一个文件,可以在文件的设置中进行更改:

单击不希望生成的文件,查看属性窗口F4

将“生成操作”设置为“无”以禁用生成该文件。

Program.cs包含项目运行时要运行的内容

Application.Run(new Form1());
您可以使用它来选择要运行的任何类

如果是控制台应用程序,则只运行具有入口点的类

static void Main(string[] args)
{
}

如果要选择运行哪个主方法,可以在“启动对象”下的“项目->属性”中选择。有各种各样的需求需要满足,比如静态的,一次只能选择一个


如果要在多个静态类上调用main方法,则需要创建一个调用其他静态类的main方法。您可能会变得复杂,并使用反射来搜索项目中的类,但这比静态调用它们要复杂得多。

只有包含静态Main方法的类会首先运行。 向要首先执行的类添加一个Main方法

如果你需要更多帮助,请回复我。
希望这能有所帮助。

您可以将static mainstring[]args方法添加到您想要运行的类中,或者在program.cs中创建同一类的对象,并在program.cs中调用您主要需要的方法。

由于OP来自Java背景,我认为值得以稍微不同的方式回答这个问题

我知道OP有几个不同的C类及其相应的静态主方法,这些类中的每一个都可能是引导应用程序代码的不同方式,并且希望在VisualStudio中启动应用程序时在它们之间轻松切换。 因此,简单的答案是:没有简单的方法:

首先,如果项目的输出类型是类库,则不能通过静态Main方法启动项目。您需要将其更改为控制台应用程序或Windows应用程序才能启动它。这与Java世界完全不同,在Java世界中,您可以使用静态main方法右键单击任何类,然后单击RunAs…,Java应用程序。在Java中,没有库项目/模块这样的概念,因此包含静态main类的项目是否是库并不重要

其次,我发现的最简单的方法与Ray的答案非常相似:

在项目上单击鼠标右键,然后单击“属性” 在应用程序中,确保输出类型不是类库 将Startup对象更改为要运行其静态Main的类 右键单击项目,调试,启动新实例
不幸的是,我看不到使用不同类为同一项目保存不同启动配置的方法,因此您可以轻松地在它们之间切换。AFAICS实现这一点的唯一方法是在解决方案中创建新项目,并将它们配置为启动不同的主类。

在我要排除的文件中,将静态更改为私有对我来说是可行的,我只保留一个静态文件,visual studio只运行一个。

我对dot net世界不熟悉,面临同样的问题。为了练习C语言,需要在diff.cs文件中编写几个小代码,但按照dot net,只能有一个主代码

所以,如果您有10.cs文件,那么请确保用小写字母更新它们的“main”方法名

 static void main(string[] args){}
并且您要运行的文件应该具有大写为M的Main方法

 static void Main(string[] args){}
此外,即使您的.cs文件位于其他文件夹中,也只需要从根文件夹运行命令

dotnet run

我假设每个都有一个主要功能?这是什么类型的项目?为什么要单独上课?你想达到什么目的?可能作者想做一些测试,并且有多个文件和一个主方法。有趣的是,来自C世界的人甚至不能理解这个问题,因为VS与任何Java IDE相比有多糟糕。。在任何Java IDE中,选择要使用哪个类来引导代码都很容易,在VS中也很难做到这一点。我正在努力运行我在库项目中创建的一个简单的Main方法,似乎我需要在解决方案中添加另一个控制台项目来实现这一点。@BrunoJCM哈哈,这是完全正确的。我将转向另一个方向,主要是作为.net开发人员
,我发现在Java世界中实现东西是多么容易。我以为他说的是“运行”文件,而不是构建文件。项目属性中没有应用程序选项卡。