C# windows窗体应用程序项目中的文件是如何链接的?

C# windows窗体应用程序项目中的文件是如何链接的?,c#,visual-studio-2012,C#,Visual Studio 2012,我不知道文件是如何编译在一起的,似乎没有相互引用。我刚刚启动了Visual Studio 2012,启动了一个新项目,然后单击了Windows窗体应用程序。解决方案包括以下文件:Form1.Designer.cs、AssemblyInfo.cs、Settings.Designer.cs和Resources.resx(据我所知)。这将是四个文件,它们都被执行,但看起来彼此之间没有任何引用。C#是否只执行与包含Main()的目录相同的目录中的所有文件?如果是,那么如何确定订单?我在别处找不到这些信息

我不知道文件是如何编译在一起的,似乎没有相互引用。我刚刚启动了Visual Studio 2012,启动了一个新项目,然后单击了Windows窗体应用程序。解决方案包括以下文件:Form1.Designer.cs、AssemblyInfo.cs、Settings.Designer.cs和Resources.resx(据我所知)。这将是四个文件,它们都被执行,但看起来彼此之间没有任何引用。C#是否只执行与包含Main()的目录相同的目录中的所有文件?如果是,那么如何确定订单?我在别处找不到这些信息。

如果您检查项目文件的原始内容(使用外部编辑器打开),您将看到它不是任意的。该项目“将这些文件关联在一起”。它将与名为project_name.csproj(用于C#)的其他文件位于同一文件夹中

为了更深入地研究编译在.NET中的工作方式,我建议尝试使用命令行编译器。C#的csc和VB的vbc

格式是XML,开始看起来是这样的:(即使是一个很小的应用程序也会有一个相当大的prj文件。)


调试
任意CPU
8.0.50727
2
{37482A08-A668-45C7-A650-37EA2248B1F6}
温克斯
性质
等

如果检查项目文件的原始内容(使用外部编辑器打开),您将看到它不是任意的。该项目“将这些文件关联在一起”。它将与名为project_name.csproj(用于C#)的其他文件位于同一文件夹中

为了更深入地研究编译在.NET中的工作方式,我建议尝试使用命令行编译器。C#的csc和VB的vbc

格式是XML,开始看起来是这样的:(即使是一个很小的应用程序也会有一个相当大的prj文件。)


调试
任意CPU
8.0.50727
2
{37482A08-A668-45C7-A650-37EA2248B1F6}
温克斯
性质
等

还有一个名为
程序的文件。cs
它有一个main方法,该方法确定应用程序应该首先运行什么,并且它有一个默认值来运行
Form1.cs
请参见以下行:

Application.Run(new Form1());

现在,您知道要首先编译哪个类,然后将您的第一个编译表单与另一个表单或任何其他表单链接,并使用操作事件处理程序(例如button click)启动它。

还有一个名为
Program.cs
的文件,它有一个main方法,此方法确定应用程序应首先运行的内容,并且默认运行
Form1.cs
请参见以下行:

Application.Run(new Form1());


因此,现在您知道将首先编译哪个类,然后将您的第一个编译表单与另一个表单或任何其他表单链接,并使用操作事件处理程序(例如button click)启动它。

不确定其中的大部分,但
AssemblyInfo.cs
是“特殊的”,因为它只包含程序集级属性。但是,我确信.NET实际上并不执行源文件。它运行
Main()。现在,实际情况是,项目中的所有文件都在一次编译中合并到一个程序集中。也许本教程可以帮助您理解我编辑过您的标题的.net项目。请看“”,其中的共识是“不,他们不应该”。是什么让你认为表单设计师与任何事情都有关系?约翰·桑德斯,将其作为一条评论发表。为了回答您的问题,我尝试使用表单设计器作为示例来说明我问这个问题的目的。它的措辞非常糟糕,因此我将对其进行更改。虽然我不确定其中的大部分内容,但
AssemblyInfo.cs
是“特殊的”,因为它只包含程序集级别的属性。但是,我确信.NET实际上并不执行源文件。它运行
Main()。现在,实际情况是,项目中的所有文件都在一次编译中合并到一个程序集中。也许本教程可以帮助您理解我编辑过您的标题的.net项目。请看“”,其中的共识是“不,他们不应该”。是什么让你认为表单设计师与任何事情都有关系?约翰·桑德斯,将其作为一条评论发表。为了回答您的问题,我尝试使用表单设计器作为示例来说明我问这个问题的目的。这是可怕的措辞,所以我会改变它,虽然。+1是的,谢谢你添加+1是的,谢谢你加上这个
Program.cs
不是一个类,而是一个文件。Program.cs是磁盘上的一系列字节,这一事实使它成为一个文件。它可能包含一个类声明,但它是一个文件。你在说什么?文件类型的关键是文件。文件与文件中的文本不同。文件中的文本在被编译器解释时具有意义。在这种情况下,这个含义是一个名为“程序”的类,它有一个名为“Mead”的方法。在您决定我只是迂腐之前,请考虑部分类,其中一个类的一部分可以分布在多个文件上。也可以有一个包含多个类的文件。@Mouth.Open();Insert(Foot.getInstance())
Program.cs
不是一个类,而是一个文件。Program.cs是磁盘上的一系列字节,这一事实使它成为一个文件。它可能包含一个类声明,但它是一个文件。你在说什么?文件类型的关键是文件。文件与文件中的文本不同。文件中的文本在被编译器解释时具有意义。在这种情况下,这个含义是一个名为“程序”的类,它有一个名为“Mead”的方法。在您决定我只是迂腐之前,请考虑部分类,其中一个类的一部分可以分布在多个文件上。也可以有一个包含多个类的文件。@Mouth.Open();嘴,在