ファイルがどのように一緒にコンパイルされるかについて、私は途方に暮れています。一見、お互いを参照していないようです。Visual Studio 2012 を開始したばかりで、新しいプロジェクトを開始し、[Windows フォーム アプリケーション] をクリックしました。私が知る限り、このソリューションには、Form1.Designer.cs、AssemblyInfo.cs、Settings.Designer.cs、および Resources.resx というファイルが含まれています。これは 4 つのファイルであり、すべて実行されますが、互いに参照していないように見えます。C# は、Main() を含むディレクトリと同じディレクトリにあるすべてのファイルを実行するだけですか? もしそうなら、それはどのように順序を決定しますか? この情報は他では見つかりません。
2 に答える
2
プロジェクト ファイルの生の内容を調べる (外部エディタで開く) と、それが恣意的ではないことがわかります。プロジェクトは「それらのファイルを関連付けます」。これは、project_name.csproj (C# の場合) という名前の他のファイルと同じフォルダーにあります。
.NET でコンパイルがどのように機能するかを詳しく調べるには、コマンド ライン コンパイラを試してみることをお勧めします。C# の場合は csc、VB の場合は vbc です。
フォーマットは XML で、最初は次のようになります (非常に小さなアプリケーションでもかなりの prj ファイルがあります)。
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProductVersion>8.0.50727</ProductVersion>
<SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{37482A08-A668-45C7-A650-37EA2248B1F6}</ProjectGuid>
<OutputType>WinExe</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
etc.
于 2013-05-14T00:34:07.137 に答える
-1
main メソッドを持つというファイルもありますProgram.cs
。このメソッドは、アプリケーションが最初に実行する必要があるものを決定し、次Form1.cs
の行を参照して実行するデフォルトがあります。
Application.Run(new Form1());
これで、どのクラスが最初にコンパイルされるかがわかったので、最初にコンパイルされたフォームを別のフォームまたはその他のものにリンクし、ボタンクリックなどのアクションイベントハンドラーを使用して起動します。
于 2013-05-14T00:55:35.737 に答える